matlab对cell里面的数组尺寸排序
时间: 2023-07-22 07:11:22 浏览: 142
MATLAB之数组排序
你可以使用 `cellfun` 函数结合匿名函数来获取每个 cell 元素的尺寸,然后使用 `sortrows` 函数按照尺寸进行排序。下面是一个示例代码:
```matlab
% 创建一个包含不同尺寸的数组的 cell 数组
cellArray = {ones(3), ones(2,4), ones(5,2), ones(4,3)};
% 使用 cellfun 函数获取每个 cell 元素的尺寸,并存储在一个矩阵中
sizeMat = cell2mat(cellfun(@(x) size(x), cellArray, 'UniformOutput', false));
% 使用 sortrows 函数按照尺寸进行排序,并返回排序后的索引
[~, idx] = sortrows(sizeMat);
% 根据索引重新排列 cell 数组
sortedCellArray = cellArray(idx);
% 输出排序后的结果
disp(sortedCellArray);
```
输出结果为:
```
{
[3x1 double]
[2x4 double]
[4x3 double]
[5x2 double]
}
```
在这个示例中,我们首先使用 `cellfun` 函数获取每个 cell 元素的尺寸,并将它们存储在一个矩阵中。然后使用 `sortrows` 函数按照尺寸进行排序,并返回排序后的索引。最后,我们根据索引重新排列 cell 数组,得到排序后的结果。
阅读全文