如何在matlab中随机生成极限[m,n]中的所有数字?
How to generate all numbers randomly in the limit [m,n] in matlab?
如何在limit [m,n]
中随机生成所有数字。要从 6 to 12
.. 生成所有数字,即序列必须类似于 [7 12 11 9 8 10 6]
。
r = randi([6 12],1,7);
但这给出了结果:
[12 11 12 7 9 10 12]
这里的数字是重复的,序列不包含 6 to 12
.
中的所有数字
假设您使用均匀分布进行抽样。
r = datasample(6:12,7,'Replace',false)
简而言之,这会进行无放回的随机抽样,因此您可以随机顺序从原始总体中获取所有值。
您可以使用 randperm
生成 1 到 n
之间的随机数列表(其中 n
是向量的长度),并使用它来排列向量.
v=6:12;
n=length(v);
I=randperm(n);
v(I)
如何在limit [m,n]
中随机生成所有数字。要从 6 to 12
.. 生成所有数字,即序列必须类似于 [7 12 11 9 8 10 6]
。
r = randi([6 12],1,7);
但这给出了结果:
[12 11 12 7 9 10 12]
这里的数字是重复的,序列不包含 6 to 12
.
假设您使用均匀分布进行抽样。
r = datasample(6:12,7,'Replace',false)
简而言之,这会进行无放回的随机抽样,因此您可以随机顺序从原始总体中获取所有值。
您可以使用 randperm
生成 1 到 n
之间的随机数列表(其中 n
是向量的长度),并使用它来排列向量.
v=6:12;
n=length(v);
I=randperm(n);
v(I)