matlab程序出错,加了个矩阵We,就弹出Index exceeds matrix dimensions.请大神帮忙看看,感激不尽。

UL=17.2305;G=4130000;Ei=183.891;Z(4,1)=1;rg=0.5633;PY=19.7;TY=343;T=12;GP=2000;WP=200;Bw=1.1;We(1)=0;
for n=1:1;
for i=1:1000;
for j=2:1000;
P(1,1:j)=19.7;P(2,1:j)=19.4;P(3,1:j)=19.0;
Y=((P(n,end)-P(n+2,end))/2)*(T^(1/2))*UL;
sum(j)=sum(j)+Y;
We(2)=sum(2);
P(n+3,j)=((22.11*(1-(GP/G)))/(1-(((We(j)-WP*Bw)*Ei)/G)))*Z(n+3,i);
We(j+1)=((P(n+1,j)-P(n+3,j))/2)*(T^(1/2))*UL+sum(j);
if abs(P(n+3,j)-P(n+3,j-1))<=0.002;
break;
end
end
Ppc=4.666+0.103*rg-0.25*rg*rg;
Tpc=93.3+181*rg-7*rg*rg;
Ppr=PY/Ppc;
Tpr=TY/Tpc;
Yg(i)=(0.27*Ppr)/(Z(n+3,i)*Tpr);
Z(n+3,i+1)=1+(0.3151-(1.0467/Tpr)-(0.5783/(Tpr^3)))*Yg(i)+(0.5353-(0.6123/Tpr)+(0.6815/(Tpr^3)))*Yg(i)^2;
if abs(Z(n+3,i)-Z(n+3,i+1))<=0.0005;
break;
end
end
end
循环可以运行,但只运行一次,下边求Z的循环应该没有问题的,主要是第一个,加了个矩阵We,之前没有,是用sum(j)的,加了以后就弹出Index exceeds matrix dimensions,希望大神帮我看看,是不是犯了什么低级错误,我已经看不出来了,感激不尽啊!

1、出错原因:

在对 j 的循环里,下面这句:

sum(j)=sum(j)+Y;

在第一次循环就用到了sum(2),但sum并没有定义,所以会出现数组越界的错误。

 

2、解决方法:

由于不知道你的算法和那句“sum(j)=sum(j)+Y”的意图,没法给你更好的建议。如果只是为了让程序运行,在循环外面加一句

sum=zeros(1000,1);

对变量进行初始化即可避免运行错误,但结果未必是你想要的。

 

3、不建议把常用的内建函数 sum 作为变量名。

温馨提示:内容为网友见解,仅供参考
无其他回答

matlab程序出错,加了个矩阵We,就弹出Index exceeds matrix dimensions...
1、出错原因:在对 j 的循环里,下面这句:sum(j)=sum(j)+Y;在第一次循环就用到了sum(2),但sum并没有定义,所以会出现数组越界的错误。2、解决方法:由于不知道你的算法和那句“sum(j)=sum(j)+Y”的意图,没法给你更好的建议。如果只是为了让程序运行,在循环外面加一句 sum=zeros(1000...

MATLAB 中 Index exceeds matrix dimensions.错误
MATLAB 中 Index exceeds matrix dimensions错误,是代码错误造成的,解决方法如下:1、启动MATLAB,新建脚本(Ctrl+N),输入以下代码。2、保存和运行上述脚本,弹出错误对话框。错误信息为:这是默认错误字符串(this is the default error string)。对话框名字为:错误对话框(error dialog)。3、接着...

Matlab中的矩阵出现index exceeds matrix dimensions什么意思?
Index exceeds matrix dimensions.翻译成中文就是 指数超过矩阵维度。意思就是,你矩阵加入定义的矩阵A是 3乘3的矩阵,你在程序里,写了一个 B=A(4,3);这样的话,Matlab就找不到这第四行第三列的数据,因为你定义的A就三行三列;比如如下代码,你可以试试:M= magic(4);M(6,6)输出的就...

matlab运行出错 Index exceeds matrix dimensions.
指数超过矩阵的维数,可能是因为运行次数过多,而导致数据重复使用出错的,建议运行 clear 然后重新将原程序粘贴进来运行!

MATLAB 中 Index exceeds matrix dimensions.错误
MATLAB 中 Index exceeds matrix dimensions错误,是代码错误造成的,解决方法如下:1、启动MATLAB,新建脚本(Ctrl+N),输入以下代码。2、保存和运行上述脚本,弹出错误对话框。错误信息为:这是默认错误字符串(this is the default error string)。对话框名字为:错误对话框(error dialog)。3、接着...

matlab 运行的时候出现这个提示Index exceeds matrix dimensions
意思就是实际语句执行过程中超出了定义矩阵的阶数 比如说当i=140的时候,test(1:46,841: 846)= M(6441:6486,1:6);读进来的xls文件可能就没有六千多行 因为也没有你的xls,也没有错误截图,所以没办法推测你到底是哪里出了问题

matlab中出现这样的提示:Index exceeds matrix dimensions._百度...
这个情况引起的原因只有一个 那就是下标越界。检查你的循环结构吧,有时候循环变量的值经过某些运算之后代入矢量的下表中,就会引起越界。

...程序总是提示“Index exceeds matrix dimensions.”该怎样改程序才能...
t 要初始化为数组,将for前面一句“t(1)=0;”换为“t=zeros(1,mmax);”

matlab报错??? Index exceeds matrix dimensions.
索引超过了矩阵维度,

MATLAB程序报错Index exceeds matrix dimensions. 该怎样改?
X=temp(:,1:m-1);表示将temp矩阵的第一列到m-1列所有元素值赋给X,Y=temp(:,m);表示将temp矩阵的第m列所有元素值赋给Y 经过上面赋值,X成为矩阵,Y成为矢量,不知道报的是啥错误,是不是与上面分析的有关,

相似回答