如何检索坐标x,y已保存在另一个矩阵中的特定行?

时间:2016-11-01 20:06:16

标签: matlab matrix matlab-guide

我有一个数据矩阵数据(8765x138),第一列和第二列是x和y坐标。我已经对另一个数组中的某些特定点进行了采样,点(2000x2),A中的第一列和第二列分别指向x和y。我想在Matlab中提取一些与矩阵A(x,y)匹配的特定行。输出应为(2000x138)。我尝试了以下代码,但结果不正确。

newData = Data(ismember(Data(:,1),Points(:,1))& ismember(Data(:,2),Points(:,2)),:);

如何从数据中选择第一列和第二列匹配 Points 矩阵的行。有人请帮忙,我觉得我已经尝试了一切!

2 个答案:

答案 0 :(得分:0)

您可以将ismember与参数rows

一起使用
newData = Data(ismember(Data(:,1:2),Points(:,1:2),'rows'),:);

但是当您进行采样时,最好保存采样数据的索引并使用它们来提取坐标。

答案 1 :(得分:0)

这是一个措辞严厉的问题,很难确定,但解决方案可能是使用ismember()来查找匹配的行,例如:

DataXY = Data(:,[1,2]);
tf = ismember(DataXY, Points, 'rows');
newData = Data(tf,:);