Implement double summation in Matlab

Hi.
Could you help me implement these two equations in Matlab utilizing for loops?
SF is a matrix of 1400 rows and 120 columns.
N=120
t=1:1400
I think the first equation can be implemented with cumsum(SF,2) but I'm curious as to how it'd be with foor loops.
Thanks

回答(2 个)

Rik
Rik 2020-12-14
编辑:Rik 2020-12-14
The sigma symbol contains all syntactic elements that you need for a for loop:
y=0;%initialize to 0
for j=1:N
for i=1:j
y=y+f(i);
end
end

4 个评论

Thank you for your answer. Did you mean to type y=y+f(i)?
Also, in my case f is a 1400x120 matrix. Do I need a third for loop from t=1:1400, and should the argument of f be (t,i)? Like this
y=0;%initialize to 0
for t=1:1400
for j=1:N
for i=1:j
y=y+f(t,i);
end
end
end
Yes, that was a typo, which I now corrected.
The point is that a sigma is easy to convert to a for-loop. If you function of i (f) is actually also a function of t, you should include that as well, but only if your output is no longer a function of t.
It doesn't look like a heap of for-loops is your optimal strategy. Do you actually want to use this for something? I would strongly suggest using the sum function and cumsum. That will be much faster, as Matlab can optimize a lot of the calculations.
Yes, I wanted to understand how to implement summation with for loops.I think I've gotten the gist.
As for the equations in my OP. The first one is implemented with y=cumsum(SF,2), right?
How can I implement the product equation with functions and loops if necessary? I'm a little lost
Rik
Rik 2020-12-14
编辑:Rik 2020-12-14
Maybe cumprod is what you're looking for there? If you think about what should happen mathematically, that operator mean to take the product of all elements, right? That would make it analogous to the sigma operator, which uses + on all operators. Note that while 0 is the null operand for sum (or is it called unit operand?), for a product that operand is 1.

请先登录,再进行评论。

aisha chauhan
aisha chauhan 2023-5-27
编辑:Image Analyst 2023-5-27
Please convert this equation into MATLAB code:

1 个评论

Try a nested for loop:
theSum = 0;
for ii = 1 : Ncl
for ell = 1 : Nray
aHt = at(phi(ii, ell)^t, theta(ii, ell)^t)
theSum = theSum + alpha(ii, ell) * ar(phi(ii, ell)^r, theta(ii, ell)^r) * aHt^H
end
end
H = gamma * theSum;
But the equation seems weird, or maybe the nomenclature was just not explained. Like why are you raising a sub t to the H power when H is the result of the loop? To learn other fundamental concepts, invest 2 hours of your time here:
If you still have trouble, start your own question instead of posting in some 3 year old thread of @Jean Pazos's.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by