1
私はこのような行列を持つ:選択行
a=[ 20 30 45 55;
25 25 50 60;
100 29 36 52;
28 33 48 62];
私はこの新しい行列の行は最初の行の±10の範囲内にあるように、別の行列を持つようにしたいですa
マトリックス。
b=[20 30 45 55;
25 25 50 60;
28 33 48 62]
私はこのような行列を持つ:選択行
a=[ 20 30 45 55;
25 25 50 60;
100 29 36 52;
28 33 48 62];
私はこの新しい行列の行は最初の行の±10の範囲内にあるように、別の行列を持つようにしたいですa
マトリックス。
b=[20 30 45 55;
25 25 50 60;
28 33 48 62]
は(あなたはMATLABの2016B以降を持っている場合、またはimplicit expansion)bsxfun
を使用して、最初の行からすべての行を減算しabs
olute値を取る:
は、例えば、この場合には、我々は、マトリックスb
を持っています。次にany
を~
とし、a
の行に最初の行の±10範囲外の値が含まれていない行を探します。最後にlogical indexingを使用してこれらの行を選択します。
コード:a
与えられたため
b = abs(bsxfun(@minus, a,a(1,:)));
b = a(~any(b>10,2),:);
出力:
b =
20 30 45 55
25 25 50 60
28 33 48 62
2つの以上の質問...私は行列の選択された行のインデックスを知りたい場合はどのような私はできこれを書いてください...そして、もし私が行列の行を分類したいとしたら、例えばm行の行(m行n列の行列)が同じ範囲にあるのです – Masoud