我的功能共有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
答案 0 :(得分:2)
如果fsolve的结果是2x2数组,那么你怎么能期望将它保存为标量?
Ep2(i)=fsolve(vv, E0);
这里使用Ep2存储单个元素,即标量。你不能将4个元素合二为一,也不会出错。
使用三维数组,结构或使用单元格数组。