使用给定索引对单元格数组的行进行排序

时间:2015-04-17 05:10:52

标签: matlab

我们得到一个大小为m x n的单元格数组Ref_M和一个长度为m的向量IND

IND(i)包含i Ref_M行中非空单元格的数量。目的是根据Ref_M向量中从最大值到最小值的值来组织单元数组IND中的行。

假设:

Ref_M = [2x2 double]    [2x2 double]    []
        [2x2 double]     []             [] 
        [2x2 double]    [2x2 double]    []
        [2x2 double]    [2x2 double]    [2x2 double]

IND = [ 2 1 2 3]

结果应为:

New_Ref_M = [2x2 double]    [2x2 double]    [2x2 double]
            [2x2 double]    [2x2 double]    []
            [2x2 double]    [2x2 double]    []
            [2x2 double]    []              [] 

此外,是否有一种方法来组织单元格数组Ref_M而不使用给定的索引向量IND

1 个答案:

答案 0 :(得分:1)

尝试sort()

[B, transform] = sort(IND, 'descend');
New_Ref_M = Ref_M(transform, :);

您可以使用以下方式自行确定IND

IND = sum(~cellfun('isempty', Ref_M), 2);