如何在MATLAB中重新排列单元格的内容?

时间:2012-07-03 08:45:54

标签: matlab sorting cell

我在MATLAB中将一组时间序列导入到一个单元格中,每个时间序列都有不同的维度。单元格如下所示:

datacell = 

[176x1 double] [132x1 double] [129x1 double] [86x1 double] [90x1 double] ...[162x1 double] 

我想重新排列细胞,从最低维到最大,从左到右。单元格中有1000个条目,没有办法手动执行此操作。我怎样才能做到这一点?请有人就处理这个问题提出一些想法。

谢谢!

2 个答案:

答案 0 :(得分:4)

简单:

[~, I] = sort(cellfun(@length, datacell));
new_datacell = datacell(I);

答案 1 :(得分:2)

哦,好像我是第二分钟;)


做这样的事情:

test_data = {rand(100,1), rand(12,1), rand(200,1), rand(123,1)}
length_info = cellfun(@length,test_data)
[a,i_sort] = sort(length_info)
sorted_data = test_data(i_sort)