【问题标题】:How to retrieve specific rows that the coordinates x,y have been saved in another matrix?如何检索坐标 x,y 已保存在另一个矩阵中的特定行?
【发布时间】:2016-11-01 20:06:15
【问题描述】:

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

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

我应该怎么做才能从 Data 中选择第一列和第二列与我的 Points 矩阵匹配的行。有人请帮忙,我觉得我已经尝试了一切!

【问题讨论】:

  • 我不明白你想要的输出。你有 2000 个点,但你输出匹配的整行?您能提供一个小例子来说明您正在尝试做什么吗?
  • 我认为你在 PointsA 之间混用...

标签: matlab matrix matlab-guide


【解决方案1】:

您可以将ismember 与参数rows 一起使用

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多