Double sum with upper limits

2 ビュー (過去 30 日間)
H Lange
H Lange 2020 年 3 月 2 日
コメント済み: Luna 2020 年 3 月 3 日
Hi
I am trying to do the following calululation in matlab:
But I do not how how to do the two sums in the front. Our data (d) is a 67x120 array.
Any suggestions would be appreciated :)
  2 件のコメント
darova
darova 2020 年 3 月 2 日
Luna
Luna 2020 年 3 月 2 日
編集済み: Luna 2020 年 3 月 2 日
What have you done so far as coding? And what is d?

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

採用された回答

Guillaume
Guillaume 2020 年 3 月 2 日
編集済み: Guillaume 2020 年 3 月 2 日
s = (1:size(d, 1)).';
result = sum(sum(d .* cos(s))) / sum(cos(s));
Loops not needed, they're just a waste of time.
  3 件のコメント
Guillaume
Guillaume 2020 年 3 月 2 日
Yes, I made a mistake, there was a sum missing in the denominator. I assumed that the could be taken out of the double sum, i.e. it's over the whole range. It's not clear and we didn't get an answer to Darova's question. So, my code implement:
If it's a partial sum as you think, then:
s = (1:size(d, 1)).';
result = sum(sum(d .* cos(s) ./ cumsum(cos(s))));
which implements
Luna
Luna 2020 年 3 月 3 日
You are right.

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

その他の回答 (1 件)

Luna
Luna 2020 年 3 月 2 日
Maybe something like that would help:
d = rand(67,120);
sum_of_cos_s = 0;
result = 0;
for s = 1:67
for j = 1:120
sum_of_cos_s = sum_of_cos_s+cos(s);
result = result + (d(s,j)*cos(s))/sum_of_cos_s;
end
end

カテゴリ

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

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by