Matlab中的多维单元数组

时间:2014-05-18 19:59:21

标签: arrays matlab multidimensional-array cell cells

我有相同数量的单元格的<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

1 个答案:

答案 0 :(得分:0)

垂直连接三个单元格数组:

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))