Matlab生成多个随机矩阵

时间:2015-11-14 11:13:04

标签: matlab matrix

我必须生成20个随机矩阵,其大小不断增加

200:50:1150 //sizes of 20 random matrices

我想将它们存储为矩阵数组:

array(1) // should give me the 1st matrix of size 200x200
array(2) // should give me the 2nd matrix of size 250x250 and so on

我不知道该怎么做:

n = 200:50:1150
for i=1:20
  M(:,:,i) = rand(n(i));   //This does not work
end

我该怎么做,没有循环有更快的方法吗?

1 个答案:

答案 0 :(得分:1)

您不能将不同大小的矩阵堆叠到3d矩阵中,矩阵具有固定的尺寸。改为使用单元格数组:

n = 200:50:1150;
M=cell(1,numel(n));
for ix=1:numel(n);
  M{ix} = rand(n(ix)); 
end

不使用for循环不会提高性能。在一次通话中简单地生成相同数量的随机数需要相同的时间:rand(sum(n.^2),1);