我有一个数据矩阵数据(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 矩阵的行。有人请帮忙,我觉得我已经尝试了一切!
答案 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,:);