Matlab计算Index exceeds matrix dimensions.为什么?

问题描述:

Matlab计算Index exceeds matrix dimensions.为什么?
[w,y]=meshgrid(linspace(0,1),linspace(20,100));
h=25;
Ta=37;
Q=420;
p=1000;
c=4200;
wb=0.0005;
k=0.5;
Tf=35;
Tc=37;
L=0.071;
phi=0.1;
y=16.7*h*(k*(wb*p*c/k)^0.5*coth(L*(wb*p*c/k)^0.5)+h+0.256*(3.054+16.7*h*w))^(-2)*(-(0.256*(Ta+Q/(p*c*w))...
-3.37-phi*(-25.6+0.095*(Tf+273)))*(k*(wb*p*c/k)^0.5*coth(L*(k*(wb*p*c/k)^0.5)+h))...
-0.256*h*(Tf-Ta-Q/(p*c*w))-0.256*exp(-L*(k*(wb*p*c/k)^0.5)*(Tc-Ta-Q/(p*c*w))*(k*(wb*p*c/k)...
^0.5*coth(L*(k*(wb*p*c/k)^0.5)+k(wb*p*c/k)^0.5))));
plot(w,y,'rs')
1个回答 分类:综合 2014-11-07

问题解答:

我来补答
你这个程序很多地方可以简化比如(wb*p*c/k)可以在上一步用v=(wb*p*c/k),还有一些相同的地方都可以这样简化,看起来也方便,你这里面的问题是相乘的时候矩阵维数不匹配 比如这个(3.054+16.7*h*w),h=25,而w为100行100列的矩阵,这样相乘是有问题的,所以就出现Matlab计算Index exceeds matrix dimensions,不知道你的要求,你可以把h改为100行100列的对角线为25的矩阵,即h=h*eye(100,100);再用h*w
 
 
展开全文阅读
剩余:2000
下一页:填词谢谢