matlab - 查找x中元素的索引

时间:2012-05-13 13:15:02

标签: matlab octave

我有一个大小为Nx2(包含(x,y)坐标)的矩阵x和一个大小为Px1(P <= N)的矩阵c,其中包含某些x坐标,即I'我很感兴趣。例如:

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

我想获取c中元素的坐标(在上面的例子[4 3]中)。我怎样才能做到这一点?当c是1x1矩阵(即标量)时,我才找到了一种方法。

1 个答案:

答案 0 :(得分:3)

ismember可用于测试多个值的成员资格。您可以将N-by-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]    

i应包含索引,其中c中的值显示为coords中的x坐标,如果未找到该元素则显示为0。 如果您有最新版本的Matlab,则可以将v替换为~