特定の値を超えた地点を読み取る方法について

12 Ansichten (letzte 30 Tage)
Taiga Miyashita
Taiga Miyashita am 25 Sep. 2020
Kommentiert: michio am 25 Sep. 2020
(251) 9.908005000
(252) 9.970724000
(253) 10.03347300
(254) 10.09644100
(255) 10.15993300 
 ・・・  ・・・・・・
という行列があります.
このうち,右側の値が10を超えた地点(253)を読み取るにはどのような関数を使えば良いでしょうか?
10.03・・・を読み取るのではなく,10を超えた地点を読み取りたいです.
初歩的な質問ですが,答えていただけますと幸いです.
よろしくお願いします.

Akzeptierte Antwort

michio
michio am 25 Sep. 2020
>> x = rand(10,2)
x =
0.9058 0.9706
0.1270 0.9572
0.9134 0.4854
0.6324 0.8003
0.0975 0.1419
0.2785 0.4218
0.5469 0.9157
0.9575 0.7922
0.9649 0.9595
0.1576 0.6557
>> find(x(:,2)<0.5,1)
ans =
3
find 関数が使えると思います。上の例では2列目が 0.5 以下になる位置を find 関数で 1 つ出してきます。
条件式 x(:,2) < 0.5 は任意のもので動きますので、目的に合わせて修正ください。
  2 Kommentare
Taiga Miyashita
Taiga Miyashita am 25 Sep. 2020
michio様
早速のご回答いただきありがとうございます.
find 関数をどのように使えば良いかがよく分かっていない点でしたので,
いただいた条件式をうまく使用して進めようと思います.
非常に助かりました.ありがとうございました.
michio
michio am 25 Sep. 2020
よかったです。
もし位置特定というよりは条件を満たす列を取り出すという用途でしたら
>> x(x(:,2)<0.5,:)
ans =
0.9134 0.4854
0.0975 0.1419
0.2785 0.4218
上のように find を使わずに実施したほうが計算効率は良いです。参考まで。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Logical finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!