how to make an indicator function in loop

11 vues (au cours des 30 derniers jours)
Jun Yoo
Jun Yoo le 2 Sep 2020
Modifié(e) : Jun Yoo le 2 Sep 2020
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?

Réponse acceptée

Alan Stevens
Alan Stevens le 2 Sep 2020
Modifié(e) : Alan Stevens le 2 Sep 2020
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.

Plus de réponses (0)

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by