How can calculate this formula with matlab?

1 回表示 (過去 30 日間)
fede
fede 2015 年 11 月 5 日
コメント済み: Torsten 2015 年 11 月 5 日
I have the vectors w(1,n) and σ(n,1). How can calculate this formula?

採用された回答

Thorsten
Thorsten 2015 年 11 月 5 日
編集済み: Thorsten 2015 年 11 月 5 日
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 件のコメント
fede
fede 2015 年 11 月 5 日
give me Error using * Inner matrix dimensions must agree.
Torsten
Torsten 2015 年 11 月 5 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Torsten
Torsten 2015 年 11 月 5 日
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.

カテゴリ

Help Center および File ExchangeMathematics についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by