Double sum with upper limits

조회 수: 3 (최근 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 CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by