![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/274639/image.png)
Double sum with upper limits
2 次查看(过去 30 天)
显示 更早的评论
Hi
I am trying to do the following calululation in matlab:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/274632/image.png)
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 个评论
采纳的回答
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
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/274701/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/274702/image.png)
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/274703/image.png)
更多回答(1 个)
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
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!