在MATLAB中基于第二经度和纬度矩阵从矩阵中提取数据

时间:2014-02-04 05:34:42

标签: matlab matrix extraction

我有两个矩阵,一个包含有关采集样本的数据(每行代表一个样本,列代表该样本的不同信息,例如收集它的经度和纬度),另一个包含特定的兴趣点(一列)包含纬度和另一个经度,每行是一个兴趣点。)

例如,兴趣点可能是:

[-64.7664,
 -64.2296,
 -64.4314,
 -64.4869,
 -64.400,
 -64.4000;

 117.3117,
 127.9522,
 127.9867,
 128.10270,
 127.13330,
 127.13330]

第一列代表纬度,第二列代表经度。

而样本数据看起来像:

c1   c2   c3   c4   c5        c6        c7    ...
0,   3,   6,   4,   -74.21,   103,      4     ...
1,   NaN, 4,   6,   -70.1,    101,      8     ...
3,   0,   5,   3,   -64.7664, 117.3117, 5     ...
2,   4,   12,  NaN, -62.1,    120,      NaN   ...
19,  5,   16,  1,   -64.400,  127.1333, 16    ...

数据继续另外29列。在这个例子中,第三行和第五行需要被制作成一个新的矩阵。

我需要找到哪些样本位于这些特定兴趣点(因此样本的经度和纬度与包含特定兴趣点的数据行之一相同)。

如何查找在感兴趣的点收集哪些样本(行),然后创建一个仅包含在感兴趣点找到的样本信息的新矩阵?

1 个答案:

答案 0 :(得分:0)

您可以在此示例中使用intersect

a = [1 2; 3 4; 5 5];
b = [3 4; 5 5; 2 1];

[c,ia,ib] = intersect(a,b,'rows')

其中向量ia包含aib b中常见索引的公共索引。