194 行 1 列の行列が 1 つあります。そのサイズを見つけようとすると、次のメッセージが表示されます。
Subscript indices must either be real positive integers or logicals.
すべての値は肯定的で論理的ですが、何が問題なのですか?
size誤って関数をオーバーライドする可能性はありますか?
>> which size
この出力を与える必要があります
組み込み (C:\ XXX \toolbox\matlab\elmat\size)
次のようなものが得られた場合
サイズは可変です
次に、関数をオーバーライドします。
これを修正するにはclear、変数を変更する必要があります
>> clear size
これで関数を使用できます
>> size( A )
コードを提供できますか?次のようにするとうまくいくはずです:
[rows cols] = size(A);
また
rows = length(A);
MATLAB では、size配列 (行列、セル配列など) の次元を返す関数です。ただし、MATLAB はオーバーロードもサポートしています。を呼び出すとsize(A)(が行列であると仮定A)、MATLAB インタープリターは最初に、名前が のオーバーロードされた変数/関数があるかどうかをチェックしますsize。
どうやらsize、エラー メッセージから判断すると、という名前の変数があるようです。したがって、MATLABの場合、添字変数 を使用size(A)して行列にインデックスを付けようとしていることを意味します。には 1 つ以上のゼロ要素があるようです。MATLAB では正でないインデックスは禁止されているため、前述のエラーが発生します。sizeAA
最も簡単な解決策は、変数に別の名前を使用して、組み込み関数を問題なくsize呼び出すことができるようにすることです。size