How can calculate this formula with matlab?

2 vues (au cours des 30 derniers jours)
fede
fede le 5 Nov 2015
Commenté : Torsten le 5 Nov 2015
I have the vectors w(1,n) and σ(n,1). How can calculate this formula?

Réponse acceptée

Thorsten
Thorsten le 5 Nov 2015
Modifié(e) : Thorsten le 5 Nov 2015
You can pull the w_i and sigma_i outside of the sum_j, because the don't depend on j. And you can compute the sum_j nicely as a matrix multiplication of row vector w and column vector sigma.
w = rand(1,10); % sample values for w and s
s = rand(10, 1);
N = numel(w);
y = 0;
for i=1:N-1
y = y + s(i)*w(i)* w(i+1:end)*s(i+1:end);
end
y = 2*y;
  2 commentaires
fede
fede le 5 Nov 2015
give me Error using * Inner matrix dimensions must agree.
Torsten
Torsten le 5 Nov 2015
Note that "w" must be a row vector whereas "s" must be a column vector if you want to use Thorsten's code.
Best wishes
Torsten.

Connectez-vous pour commenter.

Plus de réponses (1)

Torsten
Torsten le 5 Nov 2015
sum_total=0.0;
for i=1:(N-1)
sum_j=0.0;
for j=(i+1):N
sum_j = sum_j + w(j)*sigma(j);
end
sum_total = sum_total + w(i)*sigma(i)*sum_j;
end
sum_total = 2.0*sum_total;
Best wishes
Torsten.

Catégories

En savoir plus sur Platform and License dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by