MATLAB 配列にインデックスを付けるときに、正の整数または論理値ではないインデックス値が使用されると、このエラーが発生します。
##このエラーを引き起こす場合のいくつかの提案は次のとおりです。 ##)インデックス値が正の整数であることを再確認してください。 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_logical3)インデックス付き配列を計算するときに浮動小数点演算を使用すると、配列値が整数精度にならない場合があります。インデックス値が整数に非常に近いことがわかっている場合は、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 中国語 Web サイトの他の関連記事を参照してください。