【发布时间】:2015-05-01 04:52:22
【问题描述】:
我有一个变量 data,它是一个 1xn double (n>15),如下所示:
50.12 55.93 58.78 67.36 67.90 100.12 2.35 168.73 ...
首先,我想只保留 data 中的前 15 个最高值,而删除其余的。这很容易做到。然而,复杂的是 data 中的每个值都与 coord 中的一组 x y z 坐标相关联。 coord 是 3xn double,如下所示:
8 9 15 42 32 56 3
4 25 36 7 89 21 3
5 1 25 75 79 20 66...
例如,data(1,1) 的坐标是 coord(:,1),data(1,6) 的坐标是 coord(:,6)。这里的挑战是我还想删除 coord 中与 data 中删除的值相关联的相应坐标。这样,我最终会得到 1x15 数据 和 1x15 坐标。我想过这样做:
M=vertcat(data,coord) ;
然后按第一行对 M 排序,并仅保留第一行的最高 15 个值,最终得到 4x15。最后,我将 data 和 coord 分开。
我的问题是: 1.如何根据第一行对M进行排序,使第2、3、4行也相应地重新组织? 2. 我提出的解决方案似乎很混乱。有没有人有一个优雅的解决方案?
【问题讨论】:
-
将您需要的所有信息放入一个数据结构中会更简单吗?协调相关的数组/矩阵很痛苦。