Как я могу быстрее написать этот код в MATLAB?Может быть, с использованием векторизации.В принципе, я не знаю, как векторизовать с if
.Далее, если элемент массива u
равен 0, тогда цикл while происходит с обновлением.Если элемент не равен нулю, то benefit(c,t,w) = B(c,tprime,w)/u(c,tprime,w);
и i(c,t,w) = tprime ;
происходят.
county_size=3 ; time_size = 3; scenario_size = 3;
for c=1:county_size
for w=1:scenario_size
for t=tt:time_size
l = u(c,t,w) ;
tprime = t ;
while (l==0)
if tprime > time_size-1
tprime = time_size + 1 ;
B(c,time_size + 1,w) = 0 ;
u(c,time_size + 1,w) = 1 ;
break
end
l = u(c,tprime+1,w) ;
tprime = tprime + 1 ;
end
benefit(c,t,w) = B(c,tprime,w)/u(c,tprime,w) ;
i(c,t,w) = tprime ;
end
end
end