Использование цикла в fsolve и подключение результата к функции - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть функции, в которых всего 4 неизвестных (2x2).Я получил решение.Но я собираюсь изменить некоторые параметры, чтобы увидеть, как меняется оригинальное решение.

Но Matlab продолжает говорить, что в A (I) = B, «I» и номер элементаB должно быть одинаковым.

Пример кода может быть таким, как (в коде psi01 psi02 psi03 psi04 являются переменными параметрами);

R=902;
psi01=0.9:-0.1:0.1;
psi11=0.9:-0.1:0.1;
psi02=0.1:0.1:0.9;
psi12=0.1:0.1:0.9;
E0=[R/4 R/4; R/4 R/4];
for i=1:9
vv=@(E) [
g/E(2,1)-(th1+psi12(i)/psi11(i)*th2)-((psi01(i)/psi11(i))+a*b)/b*(g/E(1,1)-(rho*b*    (psi11(i)/psi01(i))/(psi01(i)/psi11(i)+a*b))*(th1+psi12(i)/psi11(i)*th2)*(th1+psi02(i)    /psi11(i)*th2)  );
g/E(2,2)-(psi11(i)/psi12(i)*th1+th2)-((psi02(i)/psi12(i))+a*b)/b*(g/E(1,2)-(rho*b*(psi12(i)/psi02(i))/(psi02(i)/psi12(i)+a*b))*(psi11(i)/psi12(i)*th1+th2)*(psi01(i)/psi02(i)*th1+th2)  );
    R-(E(1,1)+E(1,2)+E(1,1)+E(2,2));
    E(1,2)- c(E)*E(1,1);
    E(2,2)- d(E)*E(2,1)
    ];
Ep2(i)=fsolve(vv, E0);
end

1 Ответ

2 голосов
/ 02 апреля 2012

Если результатом fsolve является массив 2x2, то как вы можете сохранить его как скаляр?

Ep2(i)=fsolve(vv, E0);

Ep2 используется здесь для хранения одного элемента, скаляра.Вы не можете сложить 4 элемента в один и не получить ошибку.

Использовать трехмерный массив, структуру или использовать массив ячеек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...