我遇到了这段代码
基本上,我需要生成两个随机数向量,
这是代码,
T = 500
e = normrnd(0,1,[2*T,k]);
T = size(e,1);
e = [e(ceil(rand(T,1)*T),:);e];
为什么此方法与ceil一起使用?关于为什么有人会使用此方法的任何想法?
答案 0 :(得分:1)
1
开始,ceil()
将转换0.8 to 1
ceil()
始终返回整数 >> x = rand(3,1)*5
x =
4.3117
4.4820
0.9451
>> ceil(x)
ans =
5
5
1
ceil(rand(m,n)*imax) and randi([1, imax], [m, n]) are equivalent.
要确认使用ceil()
的偏好,例如应该在命令窗口中键入open ceil
来查看这些方法的文档
rand()
Copyright 1984-2017 The MathWorks, Inc.
ceil()
Copyright 1984-2005 The MathWorks, Inc.
randi()
Copyright 2008-2013 The MathWorks, Inc.
在早期的Matlab版本1984~2008a
中,randi()
不可用。
唯一的选择是使用rand() and ceil() or rand() and floor()
生成均匀分布的随机整数。
简而言之,使用
ceil() and rand()
可以在 所有Matlab版本,而randi()
仅适用于晚于2008b版本的版本。