我写了一个简单的程序来帮助计算一个概率问题。在一天中的10个小时内,某个事件的概率与一天中的其他时间不同。为了解释这个问题,我试图使用开关函数,但它不起作用。代码如下(我使用MATLAB):
clear all
status = 0; %0 ventilador apagat, 1 encès.
nsim = 10000;
enceses = 0;
runtime = 0;
sampletime = 0;
minute = 0;
while (runtime < 10000 || enceses < 18000)
r = rand;
switch minute
case minute < 601
if (r < 0.1642)
status = 0;
else
runtime = runtime + 5/60;
if status == 0
status = 1;
enceses = enceses + 1;
else
end
end
sampletime = sampletime + 5/60;
minute = minute + 5;
case minute > 600
if (r < 0.801)
status = 0;
else
runtime = runtime + 5/60;
if status == 0
status = 1;
enceses = enceses + 1;
else
end
end
sampletime = sampletime + 5/60;
minute = minute + 5;
if minute == 1440
minute = 0;
end
end
end
enceses
runtime
sampletime
nsim目前不执行任何操作
我一步一步地分析了执行过程,发现在第一个循环中,开关按预期工作并进入第一个case,但在此之后,它既不进入,也不进入,如果我输入一个否则的print(“error”),它只会打印出一堆错误。
1条答案
按热度按时间tf7tbtn21#
对于您的应用程序,您可以使用
if
-elseif
-end
陈述式来取代switch-case
,如下所示: