我有一个不同大小矩阵的数组。我想创建n个数组,每个数组包括相等大小的矩阵。如果我有:
ArrayA =
<9x10 double>
<7x10 double>
<9x10 double>
<9x10 double>
<7x10 double>
我想获得:
ArrayA1 =
<9x10 double>
<9x10 double>
<9x10 double>
ArrayA2 =
<7x10 double>
<7x10 double>
答案 0 :(得分:1)
mat =
[4x5 double]
[4x5 double]
[5x5 double]
[4x5 double]
[5x5 double]
[6x5 double]
[5x5 double]
我假设所有都是nx5
,因此只检查行。
arr_sizes = arrayfun(@(x) size(mat{x},1),1:size(mat,1))'
这给出了:
arr_sizes =
4
4
5
4
5
6
5
现在:
[~, ~, idx] = unique(arr_sizes);
最终输出将是:
tot_arr = arrayfun(@(x) mat(idx == x), 1:max(idx),'UniformOutput',false)';
tot_arr =
{3x1 cell}
{3x1 cell}
{1x1 cell}
现在,tot_arr
包含3个数组,您调用的数组ArrayA1, ArrayA2
等。
tot_arr{1}
ans =
[4x5 double]
[4x5 double]
[4x5 double]