我有3个单元格数组相同数量的单元格,但是我想减少只有一个单元格数组具有多个维度,以便它们可以按列访问,如数组的列。我在Matlab的环境中工作,但是我试图这样做,但不幸的是,我发现没有单元访问列如矩阵。对处理这种情况有什么建议吗?
我的代码: P = cell(1,10);
Pd = cell(1,10);
Pdd = cell(1,10);
for ii=1:10
P{ii}= [repmat([0 0 0],2,1)];
Pd{ii} = [repmat([1 1 1],2,1)];
Pdd{ii} = [repmat([2 2 2],2,1)];
end
垂直连接三个单元格数组:
Pall = [P; Pd; Pdd]
这给出了一个3x10的单元格数组Pall
,这样Pall(1,:)
就是P
,等等。
如果你想避免从一开始就创建多个单元格数组:做类似的事情:
for ii=1:10
Pall{1,ii}= [repmat([0 0 0],2,1)];
Pall{2,ii} = [repmat([1 1 1],2,1)];
Pall{3,ii} = [repmat([2 2 2],2,1)];
end
要避免循环,使用示例中的值:
Pall = mat2cell(repmat([repmat([0 0 0],2,1); repmat([1 1 1],2,1); repmat([2 2 2],2,1)],1,10),[2 2 2],3*ones(1,10))