Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 排序和索引矩阵_Matlab_Sorting_Indexing - Fatal编程技术网

Matlab 排序和索引矩阵

Matlab 排序和索引矩阵,matlab,sorting,indexing,Matlab,Sorting,Indexing,我有一个变量data,它是1xn double(n>15),类似这样: 50.12 55.93 58.78 67.36 67.90 100.12 2.35 168.73 ... 首先,我想只保留数据中的前15个最高值,而删除其余值。这很容易做到。然而,复杂的是,数据中的每个值都与坐标中的一组x y z坐标相关联coord是一种3xn双精度,类似于: 8 9 15 42 32 56 3 4 25 36 7 89 21 3 5 1 25 75 79 20 66... 例如,数据(1,1)的坐标

我有一个变量data,它是1xn double(n>15),类似这样:

50.12 55.93 58.78 67.36 67.90 100.12 2.35 168.73 ... 
首先,我想只保留数据中的前15个最高值,而删除其余值。这很容易做到。然而,复杂的是,数据中的每个值都与坐标中的一组x y z坐标相关联coord是一种3xn双精度,类似于:

8 9 15 42 32 56 3
4 25 36 7 89 21 3
5 1 25 75 79 20 66...
例如,数据(1,1)的坐标是坐标(:,1),数据(1,6)的坐标是坐标(:,6)。这里的挑战是,我还想删除坐标中与数据中删除的值相关联的相应坐标。这样,我将得到1x15数据和1x15协作。我考虑过这样做:

M=vertcat(data,coord) ;
然后按第一行对M进行排序,只保留第一行中最高的15个值,以4x15结束。最后,我将数据坐标分开

我的问题是: 1.如何根据第一行对M进行排序,使第二行、第三行和第四行也相应地重新组织?
2.我提出的解决方案似乎很混乱。有人有优雅的解决方案吗?

sort
将告诉您排序数组的每个元素来自何处,您可以使用它来重新组织
coord

[dataSorted,I] = sort(data,2,'descend')
dataTop15=dataSorted(1:15)
coordTop15=coord(:,I(1:15))

将您需要的所有信息放在一个数据结构中会更简单吗?协调相关阵列/矩阵是一件痛苦的事情。