T法の総合推定値の計算式のプログラミングについて

添付T法の総合推定値の計算式のプログラミングについて教えてください。
ηとβは1~kのベクトル。Xはi*kの行列です。
for loopを使ってn = 1:iとm=1:k 両方使えば出来そうですが、どの様にプログラミングすればよいか検討がつきません。
お手数をおかけして申し訳ございませんが教えていただけないでしょうか。
よろしくお願いいたします。

 Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 23 Okt. 2021
Bearbeitet: Atsushi Ueno am 23 Okt. 2021

0 Stimmen

T法の総合推定値:
i = 10; k = 10;
eta = 1:k; beta = 1:k; x = rand(i,k); % ηとβは1~kのベクトル。Xはi*kの行列
mhat1 = zeros(1,i); mhat2 = zeros(1,i); % MhatはT法の総合推定値
% その1: for loopを使ってn = 1:iとm=1:k 両方使えば出来そう
for n = 1:i
num = 0; den = 0;
for m = 1:k
num = num + eta(m) * x(n,m) / beta(m); % η1*xi1/β1 + η2*xi2/β2 +...+ ηk*xik/βk
den = den + eta(m); % η1 + η2 +...+ ηk
end
mhat1(n) = num / den;
end
mhat1
mhat1 = 1×10
0.0993 0.0794 0.0997 0.0997 0.1075 0.0971 0.1063 0.0845 0.1010 0.0786
% その2: for loopを使わなくても出来そう
mhat2 = eta ./ beta * x' ./ sum(eta)
mhat2 = 1×10
0.0993 0.0794 0.0997 0.0997 0.1075 0.0971 0.1063 0.0845 0.1010 0.0786

1 Kommentar

丈太郎 森川
丈太郎 森川 am 24 Okt. 2021
ありがとうございます!
forを使わず1行で計算できますね。
大変助かりました。ありがとうございました。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu ループと条件付きステートメント finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2021b

Community Treasure Hunt

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

Start Hunting!