Matlab中的矩阵矩阵

4
我需要建立矩阵的矩阵。比如对于所有的$1\leq i,j\leq n$,我必须定义一个矩阵$p_{ij}$,它将是一个$n\times n$的矩阵。我能做的就是建立一个矩阵$P$,它是$n^2\times n^2$的 - 但对于$n=20$,会出现关于内存的错误。
请问如何解决这个问题?

1
如何在这里输入数学公式?LaTeX 不支持吗? - SBF
1个回答

10

使用 cell 数组。像这样

c = cell(3,3) %Create cell array of size *3x3*

c = 

    []    []    []
    []    []    []
    []    []    []

c{1,1}; = rand(3,3); %Set cell {1,1} to be random matrix of size *3x3*
c{1,2} = ones(4,6)   %Set cell {1,2} to be matrix of ones size *4x6*

c = 

    [3x3 double]    [4x6 double]    []
              []              []    []
              []              []    []

etc..


我如何调用单元格i,j中矩阵的元素k,l? - SBF
@Gortaur:像这样,c{i,j}(k,l)。 - Ghaul
@draks 因为单元数组不需要存储在连续的内存块中,而数值数组需要。因此,尽管单元数组的开销较大,需要比数值数组更多的内存,但通常可以在其中存储更多的信息。 - Ghaul
@Ghaul 很酷,谢谢,这很好知道。_at_MATLAB 为什么Matlab不在内部使用它? - draks ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接