在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
谢谢!
答案 0 :(得分:1)
您可以重复A
和B
(大小为1x5000的向量)以获得大小为1000x5000的矩阵,其中所有行都相等,并使用这些矩阵作为betarnd
的输入。这样,您就会得到大小为1000x5000的结果,其中列k
包含1000个带参数A(k)
和B(k)
的随机值。
原因是,根据documentation(强调我的):
R = betarnd(A,B)
返回从中选择的随机数组 参数A
和B
的beta分布。R
的大小是A
和B
的常见大小,如果两者都是数组。
所以,使用
MM = betarnd(repmat(A(:).',1000,1), repmat(B(:).',1000,1));