how to make an indicator function in loop

4 次查看(过去 30 天)
Dear Community,
Hi, im learning Matlab and wondering how to create an indicator function that I can implement in for loop.
for example, y is 10 X 1 array that has "1","2","3" as its values. What I want to do in R version is
for i = 1: length(x)
ll[i] = ifelse(y[i] == 1, 1, 0) * log(p0) + ifelse(y[i]==2,1,0)*log(p1) + ifelse(y[i]==3,1,0)*log(p2)
like if y(i,:) is 1 then 1 else 0 and multiply log(p0) and if y(i,:) is 2 then 1 else 0 and multiply log(p1)
I wanna create another ll and save the caculated values from the loop. is there any nice way to substitute "ifelse" in the calculation?

采纳的回答

Alan Stevens
Alan Stevens 2020-9-2
编辑:Alan Stevens 2020-9-2
You could do the following in Matlab:
for i = 1:length(x)
Y = y(i);
ll(i) = log(p0)*(Y==1) + log(p1)*(Y==2) + log(p2)*(Y==3);
end
Note that log is log to base e. log10 is log to base 10.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Entering Commands 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by