我有一個194×1的矩陣。當我嘗試找到它的尺寸時,我收到以下消息:錯誤:下標索引必須是實數正整數或邏輯
Subscript indices must either be real positive integers or logicals.
所有的值都是正值和邏輯值,這是什麼問題?
我有一個194×1的矩陣。當我嘗試找到它的尺寸時,我收到以下消息:錯誤:下標索引必須是實數正整數或邏輯
Subscript indices must either be real positive integers or logicals.
所有的值都是正值和邏輯值,這是什麼問題?
你能提供你的代碼嗎?如果你不喜歡這樣它應該工作:
[rows cols] = size(A);
或
rows = length(A);
謝謝,會試試:) – YSF 2013-05-09 11:39:11
有沒有可能是你不小心覆蓋size
功能?如果你喜歡的東西
size is a variable
然後你重寫功能
>> which size
應該將此輸出
built-in (C:\ X X X \toolbox\matlab\elmat\size)
。
要ammend這一點,你就必須clear
變量
>> clear size
現在你可以使用函數
>> size(A)
在MATLAB,size
是返回數組的大小的功能(矩陣,單元陣列等)。但是,MATLAB也支持overloading。當你打電話給size(A)
時(假設A
是你的矩陣),MATLAB解釋器首先檢查是否有名稱爲size
的重載變量/函數。
顯然,你有一個名爲size
變量,該錯誤消息來判斷,所以對於MATLAB size(A)
意味着你試圖索引到矩陣size
與標變量A
。似乎A
有一個或多個零元素,並且由於MATLAB中的非正指標被禁止,這觸發了上述錯誤。
最簡單的解決方案是爲變量size
使用另一個名稱,因此您可以調用內置函數size
,而不會出現任何問題。
你能發佈觸發這個錯誤的代碼部分嗎? – 2013-05-09 11:14:36
另請參見[此問題](http://stackoverflow.com/questions/20054047/subscript-indices-must-either-be-real-positive-integers-or-logicals-generic-sol)[通用解決方案這個問題](http://stackoverflow.com/a/20054048/983722)。 – 2013-11-27 15:43:09