首先用MATLAB对具有最小值的数组进行排序



我试图获得2D数组中的最小值,但保持2D数组的顺序,例如:

如果我有阵列

7  |  7
2  |  3
8  |  0
3  |  7
5  |  5

我想订购它,这样它就会显示

2  |  3
8  |  0
3  |  7
5  |  5
7  |  7

我看了minksortrows,但似乎都没有给出我需要的输出。

如有任何帮助,我们将不胜感激!

您可以使用circshift以所需的方式更改元素的顺序。首先找到最小元素的索引,然后移动,使元素位于顶部:

M = [7,7   % example data from OP
2,3
8,0
3,7
5,5];
[~,ind] = min(M(:,1));
M = circshift(M,1-ind,1);

对于更新的问题,您首先需要确定要移动到矩阵顶部的行。一旦你知道了这一点,你就可以简单地重新排列矩阵,这样这一行以及之后发生的所有事情都会被放在第一位。

A = [7     7
2     3
8     0
3     7
5     5]
[~,index] = min(A(:,1)); % Identify row which should occur first
A = A([index:end,1:(index-1)], :) % Rearrange rows
A =
2     3
8     0
3     7
5     5
7     7

相关内容

  • 没有找到相关文章

最新更新