2012-04-02 129 views
0

我的函数总共有4个未知数(2x2)。 我得到了解决方案。但是我要做的是改变一些参数,以便我可以看到最初的解决方案是如何改变的。在fsolve中使用循环并将结果插入函数中

但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 
[email protected](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 

回答

2

如果fsolve的结果是一个2×2的数组,那么你怎么能期望将它保存为标量?

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

EP2正在这里用来存储单独的元件,标量。你不能将4个元素合并成一个,而不会出错。使用3维数组,结构或使用单元格数组。