Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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 根据1个向量对2个数组/向量进行排序_Matlab - Fatal编程技术网

Matlab 根据1个向量对2个数组/向量进行排序

Matlab 根据1个向量对2个数组/向量进行排序,matlab,Matlab,我有两个数组(向量?在mlocal?)中,我想对它们进行统一排序。如何在Matlab中实现这一点 比如,;我从直方图中找到了峰值,并将其存储在2个数组中峰值xVAL,峰值VAL。它们将始终按x轴索引的升序排列。所以它们看起来总是这样: peakXVals = [0, 3, 20, 77, 240]; peakYVals = [10, 999, 30, 40, 20]; 我希望根据peakYVals中的值按降序对这两个数组进行排序。从最大的山峰到最小的山峰。因此,期望的结果是: peakXVal

我有两个数组(向量?在
m
local?)中,我想对它们进行统一排序。如何在Matlab中实现这一点

比如,;我从直方图中找到了峰值,并将其存储在2个数组中<代码>峰值xVAL,
峰值VAL
。它们将始终按x轴索引的升序排列。所以它们看起来总是这样:

peakXVals = [0, 3, 20, 77, 240];
peakYVals = [10, 999, 30, 40, 20];
我希望根据
peakYVals
中的值按降序对这两个数组进行排序。从最大的山峰到最小的山峰。因此,期望的结果是:

peakXVals = [3, 77, 20, 240, 0];
peakYVals = [999, 40, 30, 20, 10];
我可以使用什么函数在Matlab中实现这一点?

使用:

然后:

使用:

然后:


您可以将两个向量排列为矩阵的列,并按字典顺序将该矩阵的行排序为原子。然后,结果是排序矩阵的列:

tmp = sortrows([peakYVals(:) peakXVals(:)], 'descend');
peakYVals = tmp(:,1).';
peakXVals = tmp(:,2).';

您可以将两个向量排列为矩阵的列,并按字典顺序将该矩阵的行排序为原子。然后,结果是排序矩阵的列:

tmp = sortrows([peakYVals(:) peakXVals(:)], 'descend');
peakYVals = tmp(:,1).';
peakXVals = tmp(:,2).';
tmp = sortrows([peakYVals(:) peakXVals(:)], 'descend');
peakYVals = tmp(:,1).';
peakXVals = tmp(:,2).';