我在MATLAB中将一组时间序列导入到一个单元格中,每个时间序列都有不同的维度。单元格如下所示:
datacell =
[176x1 double] [132x1 double] [129x1 double] [86x1 double] [90x1 double] ...[162x1 double]
我想重新排列细胞,从最低维到最大,从左到右。单元格中有1000个条目,没有办法手动执行此操作。我怎样才能做到这一点?请有人就处理这个问题提出一些想法。
谢谢!
答案 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)