2013-05-09 32 views
-2

我有一個194×1的矩陣。當我嘗試找到它的尺寸時,我收到以下消息:錯誤:下標索引必須是實數正整數或邏輯

Subscript indices must either be real positive integers or logicals.

所有的值都是正值和邏輯值,這是什麼問題?

+3

你能發佈觸發這個錯誤的代碼部分嗎? – 2013-05-09 11:14:36

+0

另請參見[此問題](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

回答

2

你能提供你的代碼嗎?如果你不喜歡這樣它應該工作:

[rows cols] = size(A); 

rows = length(A); 
+0

謝謝,會試試:) – YSF 2013-05-09 11:39:11

4

有沒有可能是你不小心覆蓋size功能?如果你喜歡的東西

size is a variable

然後你重寫功能

>> which size 

應該將此輸出

built-in (C:\ X X X \toolbox\matlab\elmat\size)

要ammend這一點,你就必須clear變量

>> clear size 

現在你可以使用函數

>> size(A) 
1

在MATLAB,size是返回數組的大小的功能(矩陣,單元陣列等)。但是,MATLAB也支持overloading。當你打電話給size(A)時(假設A是你的矩陣),MATLAB解釋器首先檢查是否有名稱爲size的重載變量/函數。

顯然,你有一個名爲size變量,該錯誤消息來判斷,所以對於MATLAB size(A)意味着你試圖索引到矩陣size與標變量A。似乎A有一個或多個零元素,並且由於MATLAB中的非正指標被禁止,這觸發了上述錯誤。

最簡單的解決方案是爲變量size使用另一個名稱,因此您可以調用內置函數size,而不會出現任何問題。

相關問題