ホームページ > よくある問題 > 配列インデックスは正の整数または論理値である必要があります

配列インデックスは正の整数または論理値である必要があります

(*-*)浩
リリース: 2019-12-11 09:46:36
オリジナル
78309 人が閲覧しました

配列インデックスは正の整数または論理値である必要があります

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_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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート