我是matlab的新手。我想做以下事情:
- 在三个备选方案 A、B 和 C 之间生成一个包含一千次随机抽签的数组,其中在每次抽签时,每个备选方案都有相同的被选中概率。
所以最终我需要像 P = [ AABCBBBCACACC ... ] 这样的东西,其中数组中的每个元素都是在三个可能的结果中随机选择的。
我想出了一个解决方案,它给了我我想要的东西,即
% Generating random pick among doors 1,2,3, where 1 stands for A, 2 for B,
% 3 for B.
I = rand(1);
if I < 1/3
PP = 1;
elseif 1/3 <= I & I < 2/3
PP = 2;
else
PP = 3;
end
% Generating a thousand random picks among dors A,B,C
I = rand(999);
for i=1:999
if I(i) < 1/3
P = 1;
elseif 1/3 <= I(i) & I(i) < 2/3
P = 2;
else
P = 3;
end
PP = [PP P]
end
正如我所说,它可以工作,但是当我运行该程序时,在我看来这是一项简单的任务需要一段时间。同时,我长这样的任务是“应该”在matlab中承担的。所以我有三个问题:
- 这真的是产生预期结果的缓慢过程吗?
- 如果是,为什么这个过程特别慢?
- 产生预期结果的更有效方法是什么?