我想在间隔上创建两个随机整数,这些整数[1,n]保证彼此不同.我觉得像
ri(1)=randi([1 n]);
ri(2)=randi([1 n]);
while ri(1)==ri(2)
ri(2)=randi([1 n]);
end
Run Code Online (Sandbox Code Playgroud)
你真的不是最顺利的事情.
一种方法是使用,randperm以便生成n从1最多和包含枚举的值的随机排列n,并仅返回结果的前两个元素:
ri = randperm(n, 2);
Run Code Online (Sandbox Code Playgroud)
较旧版本的MATLAB不支持以randperm这种方式调用.旧版本只接受一个输入变量,默认情况下返回值的整个排列n.因此,您可以randperm使用一个输入版本调用,然后将子集调用到最终结果中以返回所需内容:
ri = randperm(n);
ri = ri([1 2]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |