1

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

datacell = 

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

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

谢谢!

4

2 回答 2

4

简单的:

[~, I] = sort(cellfun(@length, datacell));
new_datacell = datacell(I);
于 2012-07-03T08:56:24.373 回答
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)
于 2012-07-03T08:55:32.437 回答