我想生成一个介于1和10之间的随机数,例如randi([1,10])但是我想排除一个数字,比如说7 - 这个数字总是会改变并在一个名为的变量中指定b.
有可能以某种方式吗?
Eit*_*n T 18
使用randsample.例如,要生成1到10之间的数字(不包括7),请执行以下操作:
b = 7;
x = randsample(setdiff(1:10, b), 1);
Run Code Online (Sandbox Code Playgroud)
这里setdiff用于排除b向量的值1:10.
如果您没有安装统计工具箱,则无法使用randsample,因此请使用rand:
v = setdiff(1:10, b);
x = v(ceil(numel(v) * rand));
Run Code Online (Sandbox Code Playgroud)
对于那些没有统计工具箱的人:
b = 7;
pop = 1:10;
pop(b) = [];
Run Code Online (Sandbox Code Playgroud)
然后
pop(randperm(9,1))
Run Code Online (Sandbox Code Playgroud)
或n来自人口的随机整数:
pop(randi(numel(pop), 1, n))
Run Code Online (Sandbox Code Playgroud)