关闭→
当前位置:科普经验站>IT科技>matrix dimensions解决办法是什么 index exceeds

matrix dimensions解决办法是什么 index exceeds

科普经验站 人气:1.32W

出现这个错误一般都是在for循环中,或者在矩阵的赋值过程中,出现这个错误后你需要做以下工作: 一,查看矩阵A的维数,在MATLAB主窗口中输入size(A),查看矩阵的维数 二,检查你现在的赋值语句,或者循环迭代到错误出现时A(M,N)的角标,查看此时M

在MATLAB主窗口输入

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

A=[1 2 3 4 5 6];

for s1=9:-1:1 for s2=1:5 s3=student2012(s1).score(s2); if s3

A(8),回车,会出现错误。

引用矩阵元素超过界限了。比如矩阵A是4*4的,你却引用了A(4,5),显然是不存在的。

那是为什么呢?

j取值超出A的长度了。 i是从1到length(A) j始终比i大1,所以从2到length(A)+1了,超出范围了。 循环那里用for i=1:length(A)-1就好了。

index exceeds matrix dimensions解决办法是什么

方法

查看矩阵A的维数,在MATLAB主窗口中输入size(A),查看矩阵的维数

首先要看提示错误是在哪行,这个错误很好排除,就是你的数组或者矩阵超了索引范围,比如100个元素的数组,你索引到101,那就会提示这个错误。

index exceeds matrix dimensions解决办法是什么 第2张

检查现在的赋值语句,或者循环迭代到错误出现时A(M,N)的角标,查看此时M/N是不是已经超出了A的维数范围。

这个情况引起的原因只有一个 那就是下标越界。 检查你的循环结构吧,有时候循环变量的值经过某些运算之后代入矢量的下表中,就会引起越界。

index exceeds matrix dimensions解决办法是什么 第3张

运行同样会出现错误,

MATLAB 调试程序的方法是,在适当的位置设置断点,然后运行程序,程序会在断点处停下来(当然,前提是在断点的前面没出错),然后你可以查看以及修改变量的值,然后决定是否继续以及继续运行的方式(单行,跟踪进入函数,等等)。 你现在的问题

index exceeds matrix dimensions解决办法是什么 第4张

从上面可以看出当i=7时,调用A(7)便出现了错误,那么就可以再去检查循环范围过程是否出错,错误就会得到解决。

只说那几个变量没用,关键是,input0和 virtual_input是什么样的数组?

index exceeds matrix dimensions解决办法是什么 第5张

扩展阅读,以下内容您可能还感兴趣。

matlab 求大神解决问题 Index exceeds matrix dimensions.的问题 救命啊

楼上说得是对的。

就是说,比如数组只有10个元素,而你访问它的第11个元素,就发生越权。

或者你的角标小于零,或小数之类的,都会出现这种问题。

不是说数组超出最大范围,当然MATLAB中,数组也有*的,就是说一个数组最大只能是多少个字节。可以参看memory函数。

0追问你能改改吗?

请问 matlab调试程序时出现以下错误??? Index exceeds matrix dimensions. 怎么解决呢 谢谢回答哦

指针超过矩阵维数,一种可能是矩阵centroids只有一列,另一种可能是centroids(:,1)和centroids(:,2)的长度不等,你用size(centroids(:,1)),size(centroids(:,2))看看它们维数是否一样就知道了

在matlab仿真中Index exceeds matrix dimensions.是什么错误

把你问题提示发出来看看!你可以根据问题提示改正程序的 !追问??? Index exceeds matrix dimensions.

Error in ==> getphi at 35

P1=P*v(:,1:rk);

Error in ==> klmi at 345

thetaC=thetaC+v2*getphi(DR0,v2'*b2'*x2,max(10,.1*norm(thetaC,1)));

Error in ==> hinflmi at 106

[Kcen,gopt,flag]=klmi(P,r,gopt,x1,x2,y1,y2,tolred);

Error in ==> lubang3 at 10

[gopt,k]=hinflmi(p,[2 4]);追答你的b1,b2没有对啊?

运行matlab中的plot语句 出现Index exceeds matrix dimensions

这一句代码:

X(10)=x(9)-R11*cos(pi/3-S);

x该小写,写成大写了,使x只有9个元素,所以超出索引范围。追问Undefined function 'Plot' for input arguments of type 'double'

改完又出现了这个问题,还需要麻烦大神帮忙看一下!!

Index exceeds matrix dimensions 一组输入五组输出BP神经网络

Index exceeds matrix dimensions指的是你引用的数组下标超过了该数组的实际维数。

在matlab里,具体报错信息都会明确告诉你是哪一行错了,命令窗口里会显示一个红色的超链接,点击带横线的Line:xxx即可直接转到错误行,这样排查起错误就容易的多。不然你这样堆一堆程序在上面,很难看出错误在哪。