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

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

Risposta accettata

michio
michio il 25 Set 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 Commenti
Taiga Miyashita
Taiga Miyashita il 25 Set 2020
michio様
早速のご回答いただきありがとうございます.
find 関数をどのように使えば良いかがよく分かっていない点でしたので,
いただいた条件式をうまく使用して進めようと思います.
非常に助かりました.ありがとうございました.
michio
michio il 25 Set 2020
よかったです。
もし位置特定というよりは条件を満たす列を取り出すという用途でしたら
>> x(x(:,2)<0.5,:)
ans =
0.9134 0.4854
0.0975 0.1419
0.2785 0.4218
上のように find を使わずに実施したほうが計算効率は良いです。参考まで。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Logical in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!