创建具有不同尺寸的矩阵容器

时间:2012-01-12 16:33:00

标签: matlab matrix

我想在Matlab中创建具有不同维度的多个数组。 有没有办法在“for”循环中执行此操作?

例如,我想创建一个尺寸为100x100,然后是200x200等的矩阵A

2 个答案:

答案 0 :(得分:4)

您可以创建一个存储矩阵的单元格:

a = cell(10,1);
for n=1:10
    a{n} = zeros(n*100,n*100);
end

注意:要从单元格中获取项目,您应该使用{}而不是()。 a {1}返回第一个矩阵,a(1)返回包含该矩阵的单元格。

http://www.mathworks.nl/help/techdoc/ref/cell.html

答案 1 :(得分:2)

尝试使用zeros函数,而不是在循环内创建数组。

类似的东西:

B = zeros(m,n)
A = zeros(m,n)

这最初会快得多(因为每次添加元素时都不需要调整数组的大小);然后,您可以稍后迭代它并添加您需要的任何值。

编辑:我应该澄清一下,零函数创建一个m X n矩阵(如果你不使用第二个参数,则创建一个数组)并用全零填充它。这是构建大型数组的一个很好的起点。