當前位置:生活全書館 >

IT科技

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

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

  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/0p1503.html