首頁  >  文章  >  數組索引必須為正整數或邏輯值

數組索引必須為正整數或邏輯值

(*-*)浩
(*-*)浩原創
2019-12-11 09:46:3678195瀏覽

數組索引必須為正整數或邏輯值

MATLAB 索引陣列時,如果使用不是正整數或邏輯值的索引值時,就會發生此報錯。

以下是一些導致此錯誤時的建議:                            (建議學習:web/

####4122》)前端11 )仔細檢查索引值是否為正整數。 MATLAB 中的索引不能為 0,一般情況下從1開始。 ######2)如果使用邏輯變數索引,請確保索引數組類型為邏輯變量,而不是由1和0組成的double數組。也可以在索引前,將double數組轉換為邏輯數組。 #########例如:######
A = [1 2 3 4; 5 6 7 8];
ind_double = [0 1 0 1; 0 1 0 1];
ind_logical = logical(ind_double);
A(ind_logical)
###對索引數組,可以透過whos 函數查看資料類型,例如:###
whos ind_double
whos ind_logical
###3)如果使用浮點演算法來計算索引數組, 則數組值可能不是整數精度。如果知道索引值非常接近整數,則可以用round 函數,例如:###
A = [1 2 3 4; 5 6 7 8];
ind_float = 2.00001;
ind_int = round(ind_float);
A(ind_float)
###4)當定義了一個與MATLAB 內建函數重名的變數時,該函數會被覆寫,於是產生相同的報錯(呼叫函數的傳參和陣列索引都使用相同的括號),例如:###
max = rand(5);  
A = rand(5);  
max(A)
###此時,需要另外分配變數名,並清除衝突的變數名稱:###
B = max;  
clear max max(A)

以上是數組索引必須為正整數或邏輯值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn