我有两组数据。一组数据是一个矩阵,每行包含不同的样本,列中包含有关每个样本的信息,其中一列包含经度数据,另一列包含样本的纬度数据。另一个数据集由三个网格组成。第一个网格包含数据的纬度,第二个网格包含数据的经度,第三个网格包含 1° 纬度经度网格的数据。
我想要找出第二个数据集中的哪些数据与第二个数据集中的数据相对应。我的意思是,如果样本落入第二个数据集的特定网格中,则需要提取该网格中的数据,并且需要知道数据适用于哪个样本。
所以只要说在纬度 60 和 59 之间的网格中,经度 100 和 101 样本 x 下降。只需说这个特定网格的网格数据集中的数据是 10。我想知道 10(网格中的数据)适用于样本 x。
最后,我希望网格数据对应于新矩阵中的样本,该矩阵可以作为样本数据集的伙伴(即,如果样本 x 在第 40 行,那么矩阵 10 在第 40 行) ,或者作为新列添加到相同的数据集中。请记住,某些样本将落入同一个网格中。
我对matlab相当缺乏经验,我尝试过刷机工具,但这不适用于这个例子。我能想到的所有可能的工作是将样本数据中的每个 long 和 lat 舍入为偶数,然后找到哪些样本在 long 和 lat 中重叠,然后将样本数据中的 long 与 long 网格相交,然后执行对于 lat 网格,查找每个样本所属的行和列,然后找到每个样本的数据。这似乎还有很长的路要走,我不太确定它的效果如何。
我已经完成了这个方法,它在一定程度上起作用了......我有每个样本的数据所在的行和列(即样本 x 可以在第 8 行第 100 列中找到)。但是,当我尝试从网格中提取这些数据时,它不是包含一列而是包含多列的矩阵,答案仍然在矩阵的样本位置。如何从网格的每一行中获取一个数据点并最终得到一个只有一列(或可以变成一列的行)的矩阵?
谢谢