按每个单元格的第一个元素对单元格数组进行排序

时间:2010-11-23 21:53:17

标签: matlab

我的问题在于如何仅考虑该向量中每个单元格的第一个元素来对单元格数组进行排序:

array_A={[3 1 5] [1 6 2] [2 4 1]}

我想按照每个单元格的第一个元素对array_A进行排序:

array_A={[*1* 6 2] [*2* 4 1] [*3* 1 5]}

你对我如何解决这个问题有任何想法,可以递归地为成千上万的单元格做到这一点吗?

1 个答案:

答案 0 :(得分:4)

最简单的可能就是安排array_A来创建一个数字数组并根据它进行排序。如果向量很长或者长度不同,您可能需要先提取单元格数组中每个元素的第一个元素并对其进行排序。

换句话说:

%# extract the first number from each element of array_A
firstElement = cellfun(@(x)x(1),array_A);
%# sort (the ~ discards the first output argument of sort)
[~,sortIdx] = sort(firstElement);
%# sort array_A using the proper sort order
array_A_sorted = array_A(sortIdx);
相关问题