出現這個錯誤一般都是在for循環(huán)中,或者在矩陣的賦值過程中,出現這個錯誤后你需要做以下工作: 一,查看矩陣A的維數,在MATLAB主窗口中輸入size(A),查看矩陣的維數 二,檢查你現在的賦值語句,或者循環(huán)迭代到錯誤出現時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了,超出范圍了。 循環(huán)那里用for i=1:length(A)-1就好了。
方法
查看矩陣A的維數,在MATLAB主窗口中輸入size(A),查看矩陣的維數
首先要看提示錯誤是在哪行,這個錯誤很好排除,就是你的數組或者矩陣超了索引范圍,比如100個元素的數組,你索引到101,那就會提示這個錯誤。
檢查現在的賦值語句,或者循環(huán)迭代到錯誤出現時A(M,N)的角標,查看此時M/N是不是已經超出了A的維數范圍。
這個情況引起的原因只有一個 那就是下標越界。 檢查你的循環(huán)結構吧,有時候循環(huán)變量的值經過某些運算之后代入矢量的下表中,就會引起越界。
運行同樣會出現錯誤,
MATLAB 調試程序的方法是,在適當的位置設置斷點,然后運行程序,程序會在斷點處停下來(當然,前提是在斷點的前面沒出錯),然后你可以查看以及修改變量的值,然后決定是否繼續(xù)以及繼續(xù)運行的方式(單行,跟蹤進入函數,等等)。 你現在的問題
從上面可以看出當i=7時,調用A(7)便出現了錯誤,那么就可以再去檢查循環(huán)范圍過程是否出錯,錯誤就會得到解決。
只說那幾個變量沒用,關鍵是,input0和 virtual_input是什么樣的數組?
擴展閱讀,以下內容您可能還感興趣。
matlab 求大神解決問題 Index exceeds matrix dimensions.的問題 救命啊
樓上說得是對的。
就是說,比如數組只有10個元素,而你訪問它的第11個元素,就發(fā)生越權。
或者你的角標小于零,或小數之類的,都會出現這種問題。
不是說數組超出最大范圍,當然MATLAB中,數組也有*的,就是說一個數組最大只能是多少個字節(jié)??梢詤⒖磎emory函數。
0追問你能改改嗎?
請問 matlab調試程序時出現以下錯誤??? Index exceeds matrix dimensions. 怎么解決呢 謝謝回答哦
指針超過矩陣維數,一種可能是矩陣centroids只有一列,另一種可能是centroids(:,1)和centroids(:,2)的長度不等,你用size(centroids(:,1)),size(centroids(:,2))看看它們維數是否一樣就知道了
在matlab仿真中Index exceeds matrix dimensions.是什么錯誤
把你問題提示發(fā)出來看看!你可以根據問題提示改正程序的 !追問??? 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即可直接轉到錯誤行,這樣排查起錯誤就容易的多。不然你這樣堆一堆程序在上面,很難看出錯誤在哪。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com