2012-05-13 16 views
1

私はあるサイズのxx座標を含むサイズPx1(P < = N)の行列サイズNx2(x、y座標を含む)と行列cを持っています。興味mは例えば:matlab - xの要素のインデックスを見つける

x = [10 3; 21 9; 98 54; 4 30; 37 12]; 
c = [4 98]; 

Iは、(上記の場合に[4 3]cの要素の座標を取得したいです。これどうやってするの?私は、cが1x1の行列(スカラー)であるときのみ方法を見つけました。

答えて

3

ismemberは、複数の値のメンバーシップをテストするために使用できます。 N行2列の行列をスライスして、x座標のみを検索することができます。

coords = [1 2; 3 4; 5 6; 7 8]; 
c = [3 7 99]; 
[v i] = ismember(c, coords(:, 1)); 
i = 
    [2 4 0]  

icの値がx座標要素が見つからない場合coords、または0にとして現れるインデックスを含むべきです。 最新バージョンのMatlabをお持ちの場合はv~に置き換えることができます。

+0

この問題は、xに表示されているのと同じ順序でインデックスを返さないという問題があります。 – s5s

+0

それは 'c'の順にそれらを返します。あなたは 'i = sort(i)'を使ってxの順にそれらを得ることができます。 – Richante

関連する問題