【发布时间】:2014-01-25 19:17:31
【问题描述】:
我对 Matlab 编程很生疏,我一直在编写 for 循环。我想使用公式x(i+1)=mod(a*x(i), m);生成n随机数
我拥有的是
for i=1:n
x(i+1)=mod(a*x(i),m);
end
我不知道的是
- 如何设置
x? - 一旦我设置了
x,索引会正确吗?
【问题讨论】:
我对 Matlab 编程很生疏,我一直在编写 for 循环。我想使用公式x(i+1)=mod(a*x(i), m);生成n随机数
我拥有的是
for i=1:n
x(i+1)=mod(a*x(i),m);
end
我不知道的是
x? x,索引会正确吗?【问题讨论】:
您应该为这种情况预先分配x。给定您的for 循环,最小索引为1,最大索引为n+1,因此x 需要是带有n+1 元素的向量。你可以使用zeros,例如:
x = zeros(n+1,1); % An n+1 by 1 column vector
看起来您也应该将x(1) 的值设置为某种初始值。您的for 循环实际上是一个recurrence relation,其中i+1-th 的x 值取决于i-th 值。
【讨论】: