MATLAB Answers

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

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

채택된 답변

michio
michio 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
michio
michio 25 Sep 2020
よかったです。
もし位置特定というよりは条件を満たす列を取り出すという用途でしたら
>> x(x(:,2)<0.5,:)
ans =
0.9134 0.4854
0.0975 0.1419
0.2785 0.4218
上のように find を使わずに実施したほうが計算効率は良いです。参考まで。

댓글을 달려면 로그인하십시오.

추가 답변(0개)

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!