初始化一个2d数组,每个元素都是一个列表?

时间:2011-10-25 15:39:46

标签: arrays matlab

所以,我要做的是创建一个包含50个列表/数组的变量。访问此变量中的元素将返回其中一个列表。如果给定索引中没有元素,我希望它返回[]。

我初始化它的逻辑类似于:

spectrum_map=[];
for n=1:spectrum_blocks
    spectrum_map=[spectrum_map,[]];
end

然而,在这样做之后,我只得到一个空矩阵:

spectrum_map =

     []

我想看到的是:

spectrum_map =

     []  []  []  []  [] ....

这样,如果我要访问spectrum_map(2),我会看到它是空的。但是,我会得到索引超出矩阵维度的错误。

还有其他方法可以做我想要实现的目标吗?

1 个答案:

答案 0 :(得分:3)

如果使用单元格数组而不是矩阵,则可以获得正在寻找的效果。

spectrum_map = cell( 1, 50 );
spectrum_map{50}

ans =

     []

如果您需要稍后转换回矩阵(例如对其执行某些数学运算),您可以使用cell2mat函数。