Matlab-生成随机数与计数

Matlab-生成随机数与计数,matlab,Matlab,我需要创建一个实验,在这个实验中,我生成从1到4的随机数,并在数字1,2,3,4至少出现一次时停止。然后我需要显示随机数的数量 我是mathlab的新手,到目前为止,我对如何做到这一点只有一个模糊的想法 我想我需要为每个数字创建一个计数器,并在每个数字至少为一时停止 y=randi([1,4]); disp(y); 生成1个随机数,但我认为我需要使用while循环来继续生成随机数,并在计数器都>=1时将其中断 谢谢杨章的^^^好多了 这个解决办法会奏效的!您还可以使用向量来存储计数器 X = z

我需要创建一个实验,在这个实验中,我生成从1到4的随机数,并在数字1,2,3,4至少出现一次时停止。然后我需要显示随机数的数量

我是mathlab的新手,到目前为止,我对如何做到这一点只有一个模糊的想法

我想我需要为每个数字创建一个计数器,并在每个数字至少为一时停止

y=randi([1,4]); disp(y); 生成1个随机数,但我认为我需要使用while循环来继续生成随机数,并在计数器都>=1时将其中断


谢谢

杨章的^^^好多了

这个解决办法会奏效的!您还可以使用向量来存储计数器

X = zeros(1, 4);
count = 0;
while X(1) == 0 || X(2) == 0 || X(3) == 0 || X(4) == 0
    r = randi([1,4])
    if r == 1
        X(1) = X(1) + 1;
    elseif r == 2
        X(2) = X(2) + 1;
    elseif r == 3
        X(3) = X(3) + 1;
    elseif r == 4
        X(4) = X(4) + 1;
    end
    count = count + 1;
end
disp(count)

也许有一种更优雅的方法可以做到这一点,但这是一个足够小的问题,效率不是一个大问题

我认为下面的代码将解决您的问题

counter = zeros(4, 1);

while ismember(0, counter)
    y = randi([1, 4]);
    counter(y) = counter(y)+1;
end

计数器包含每个数字的计数。

我认为你的想法会奏效,那么问题是什么?我不知道如何创建一个计数器counter@George:您不需要帮助生成随机数。你需要阅读一篇关于matlab的基础教程!如果你喜欢人机交互:看a如果你能把我链接到一些教程那就太好了;如果y==1断开端显示(y);end将显示随机数,直到数字为1时为止。但我不知道如何创建计数器并让y>=计数…我如何重复这个实验?我知道我必须使用for a=1:100结束,但不确定如何单独显示每个实验的总和。只需在该代码外添加一个for循环,并定义一个矩阵来存储结果。它显示一个具有相同数字的20 x 1矩阵。如何更改它,使每个条目都是一个新的实验?您需要一个100×4的矩阵,然后每行都是一个实验。非常感谢它的工作。我想把实验改成有两个数字0和1。每次随机抽取一个。我需要什么代码来计算0的最长长度,例如01001110的长度为2