xと呼ばれる座標のベクトルがあります。最小y座標の要素を取得したい:
a = find(x(:,2)==min(x(:,2))); % Contains indices
これにより、y座標が最小の要素のインデックスが返されます。element * s *と言うのは、これが1つ以上の値を返す場合があるためです(たとえば、(10,2)と(24,2)は両方ともy座標として2を持ち、2が最小y座標である場合...)。
とにかく、私の次のステップは、x座標に従って最小y座標を持つ要素をソート(昇順)することです。最初に私はします:
b = sort(x(a,1));
上記の操作は、最小y座標で要素を再配置する可能性があるため、この再配置をaにも適用したいと思います。私もです:
[v i] = ismember(b, x(:, 1));
残念ながら、x値は同じでy値が異なる要素があり、これらの要素の1つがa(つまり、b)のメンバーであることが判明した場合、上記の行列がそれを選択します。たとえば、(10,2)と(24,2)が最小のy座標を持つ要素であり、3番目の要素(24、13)がある場合、上記の操作が台無しになります。もっと良い方法はありますか?ループを使用してスクリプトを作成しましたが、すべて問題ありませんでしたが、Matlabの方法論に沿って書き直したため、matlabに慣れていないことがこのエラーの原因になっているのではないかと心配しています。