Can my code be written like this?
Mostra commenti meno recenti

i want to write this formula as code in matlab,but i am not very sure that is my code right.
The range of j and k are both 1~K
for k= 1:K
for j=1:K
if k==j
a=mu(k).*( abs(h_(k)'*f_(k)^2 ) / hat_r(k);
else
b=mu(k).*( abs(h_(k)'*f_(j)^2 );
end
end
total=a+b;
end
5 Commenti
Walter Roberson
il 31 Gen 2019
No, your are overwriting b for every iteration of for j except the k==j case, and you are not totalling those b cases.
yang-En Hsiao
il 31 Gen 2019
Walter Roberson
il 31 Gen 2019
It is not obvious to me what K_k is
Neither the elementwise .* does not matter, when you work with scalars. Using conj looks less confusing than using the transposition.
In abs(h_(k)'*f_(k)^2) you are squaring f only. Use this instead:
abs(conj(h_(k)) * f_(k))^2
yang-En Hsiao
il 31 Gen 2019
Risposte (1)
There is no "hat_r(k)" in your formula. A trailing parenthesis is missing also.
total = 0;
hc = conj(h_);
for k = 1:K
c1 = ;
sumj = 0;
for j = 1:K
if j ~= k % [EDITED]
sumj = sumj + abs(hc(k) * f_(j)) ^ 2;
end
end
total = total + mu(k) * (abs(hc(k) * f_(k)) ^ 2 - sumj) / r_hat(k);
end
2 Commenti
yang-En Hsiao
il 31 Gen 2019
If "it" should be "bar_r(k)", than simply insert this in my code. You do not have to wait until I do it. By the way, the character is a greek "gamma", not an "r". But names do not matter.
There is still a missing closing parenthesis. Please post a valid formula. A smaller zoom-level would be nice.
Categorie
Scopri di più su Numeric Types in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
