【问题标题】:Array sorting in matlabmatlab中的数组排序
【发布时间】:2017-03-17 12:01:42
【问题描述】:

您好,我有一个 289x2 数组,我想在 MatLab 中进行排序。我想将第一列按数字升序排序。但是,我想保留与之关联的第二列条目。最好的解释方法是通过一个例子。

x = 76  1 
    36  2 
    45  3 

现在我想对 x 进行排序,使其返回一个如下所示的数组:

x = 36  2
    45  3
    76  1

因此,第一列已按数字顺序排序,但保留了第二列的值。到目前为止,我已经尝试过sort(x,1)。这会根据我的需要对第一列进行排序,但不会保持配对。这会将 x 返回为:

x = 36  1
    45  2
    76  3

任何帮助都会很棒。干杯!!

【问题讨论】:

    标签: arrays matlab sorting


    【解决方案1】:

    这正是sortrows 所做的。

    x=sortrows(x);    % or x=sortrows(x,1);
    

    或者如果你想使用sort,那么首先获取排序的索引,然后像这样相应地排列行:

    [~, idx] = sort(x); %Finding the sorted indexes
    x = x(idx(:,1),:) ; %Arranging according to the indexes of the first column
    

    两种方法的输出:

    x =
       36     2
       45     3
       76     1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多