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

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

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 23 Oct 2021
Edited: Atsushi Ueno on 23 Oct 2021
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 Comment
丈太郎 森川
丈太郎 森川 on 24 Oct 2021
ありがとうございます!
forを使わず1行で計算できますね。
大変助かりました。ありがとうございました。

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!