Matlab 生成一个随机数,直到它与用户匹配';s输入

Matlab 生成一个随机数,直到它与用户匹配';s输入,matlab,random,Matlab,Random,例如,用户必须输入一个介于指定范围之间的数字,并且您希望MatLab跟踪生成大于用户所选数字的数字的次数 您将如何对randi函数设置条件,以及如何跟踪尝试次数 我正在考虑将用户的输入设置为变量a,然后声明一个“while”条件,该条件要求输入值“a”必须在我指定的范围内,如果为真,则使用其条件启动randi函数;如果输入的值不在指定范围内,则显示错误消息 这里有一个简单的实现,它使用rand(选择一个介于0和1之间的数字),而不是randi: buff=1000; % number of ra

例如,用户必须输入一个介于指定范围之间的数字,并且您希望MatLab跟踪生成大于用户所选数字的数字的次数

您将如何对
randi
函数设置条件,以及如何跟踪尝试次数


我正在考虑将用户的输入设置为变量a,然后声明一个“while”条件,该条件要求输入值“a”必须在我指定的范围内,如果为真,则使用其条件启动
randi
函数;如果输入的值不在指定范围内,则显示错误消息

这里有一个简单的实现,它使用
rand
(选择一个介于0和1之间的数字),而不是
randi

buff=1000; % number of random numbers to test with each iteration... 
yn=1;
while yn
    num=input('Enter a number between 0 and 1 >> ');
    nn = -buff;
    found=[];
    while isempty(found)
       nn= nn+buff;
       found=find(rand(buff,1)>num,1,'first');
    end
    nn=nn+found;
    disp(nn)
    yn=input('Would you like to try again? (0=no,1=yes) >> ');
end
变量
nn
包含首次成功之前的试验次数

测试运行如下所示:

Enter a number between 0 and 1 >> 0.999
        1325
Would you like to try again? (0=no,1=yes) >> 0

使用
randi
的修改应该很简单。

你的想法是对的,为什么不实现它呢?只需在您的想法中添加一个计数器
i=i+1