how to make an indicator function in loop

4 ビュー (過去 30 日間)
Jun Yoo
Jun Yoo 2020 年 9 月 2 日
編集済み: Jun Yoo 2020 年 9 月 2 日
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 Center および File ExchangeEntering Commands についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by