IT科技

當前位置 /首頁/IT科技 > /列表

matrix dimensions解決辦法是什麼,index exceeds

出現這個錯誤一般都是在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即可直接轉到錯誤行,這樣排查起錯誤就容易的多。不然你這樣堆一堆程序在上面,很難看出錯誤在哪。