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