特定の値を超えた地点を読み取る方法について
    8 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Taiga Miyashita
 el 25 de Sept. de 2020
  
    
    
    
    
    Comentada: michio
    
 el 25 de Sept. de 2020
            (251) 9.908005000
(252) 9.970724000
(253) 10.03347300
(254) 10.09644100
(255) 10.15993300 
 ・・・  ・・・・・・
という行列があります.
このうち,右側の値が10を超えた地点(253)を読み取るにはどのような関数を使えば良いでしょうか?
10.03・・・を読み取るのではなく,10を超えた地点を読み取りたいです.
初歩的な質問ですが,答えていただけますと幸いです.
よろしくお願いします.
0 comentarios
Respuesta aceptada
  michio
    
 el 25 de Sept. de 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 comentarios
  michio
    
 el 25 de Sept. de 2020
				よかったです。
もし位置特定というよりは条件を満たす列を取り出すという用途でしたら
>> x(x(:,2)<0.5,:)
ans =
    0.9134    0.4854
    0.0975    0.1419
    0.2785    0.4218    
上のように find を使わずに実施したほうが計算効率は良いです。参考まで。
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!