在Matlab中生成随机矩阵

时间:2015-04-10 19:45:54

标签: matlab random

在Matlab中是否有任何方法可以生成5000 x 1000随机数矩阵,其中包括:

MM = betarnd(A,B,1,1000);

但A和B是矢量(1 x 5000)。我收到以下错误消息:

??? Error using ==> betarnd at 29
Size information is inconsistent.

我想避免像下面这样的循环:

for ii = 1 : 1000
  MM(:,ii) = betarnd(A,B); 
end

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以重复AB(大小为1x5000的向量)以获得大小为1000x5000的矩阵,其中所有行都相等,并使用这些矩阵作为betarnd的输入。这样,您就会得到大小为1000x5000的结果,其中列k包含1000个带参数A(k)B(k)的随机值。

原因是,根据documentation(强调我的):

  

R = betarnd(A,B)返回从中选择的随机数组       参数AB的beta分布。 R的大小是AB的常见大小,如果两者都是数组

所以,使用

MM = betarnd(repmat(A(:).',1000,1), repmat(B(:).',1000,1));