私は1000の値の配列上の番号を見つけることを試みています。これは私のコードです:空を見つけるmatlab
size = linspace(420, 2200, 100000);
size1000 = find(size==1000);
これは、サイズ1000の空変数を返します。私が実際には420で1000を変更した場合、実際には1を返します。なぜこれは機能しないのですか?
私は1000の値の配列上の番号を見つけることを試みています。これは私のコードです:空を見つけるmatlab
size = linspace(420, 2200, 100000);
size1000 = find(size==1000);
これは、サイズ1000の空変数を返します。私が実際には420で1000を変更した場合、実際には1を返します。なぜこれは機能しないのですか?
find
の結果は、1000が配列に含まれていないために存在しないため、空です。 linspace
への入力を使用して、あなたの期待ステップサイズは、このステップサイズと420
の開始値で0.0178
(2200 - 420)/100000
% 0.0178
になるだろう、あなたは正確に値1000
をヒットするつもりはありませんしています。配列の最も近い値は1000.001
と999.983
です。 の値を特定する場合は、〜1000の値を指定します。サイドノートとして
inds = find(abs(size - 1000) < 0.01);
それはMATLABの機能を内蔵し、変数名としてそれを使用すると、予期しない動作が発生することができますの名前であることから、変数の名前としてsize
は使用しないでください。何のために
....
a = size(size>1000);
a(1)
それ変数名にsize
を使用しないでください。 size
は、行列のサイズを取得するための重要なMATLAB関数です。あなたのコードで行うようにあなたは、size
という名前の変数を宣言するとき例えば、
>> size(randn(2,3))
ans =
2 3
はしかし、あなたはこの機能を非表示になります。あなたがsize(randn(2,3))
を呼ばれるのであれば、今、後のコードでいくつかの点で、あなたは不可解なエラーになります
Subscript indices must either be real positive integers or
logicals.
これらは、ので、それを避けてください、追跡することが非常に難しいです。
私はあなたのコードの両方の行を試しても値を取得していません。 – carlosremove
@carlosremoveアップデートをご覧ください – Suever