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).';