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

Respuestas (2)

Rik
Rik el 14 de Dic. de 2020
Editada: Rik el 14 de Dic. de 2020
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 comentarios

Jean Pazos
Jean Pazos el 14 de Dic. de 2020
Editada: Jean Pazos el 14 de Dic. de 2020
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
Rik
Rik el 14 de Dic. de 2020
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.
Jean Pazos
Jean Pazos el 14 de Dic. de 2020
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 el 14 de Dic. de 2020
Editada: Rik el 14 de Dic. de 2020
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.

Iniciar sesión para comentar.

aisha chauhan
aisha chauhan el 27 de Mayo de 2023
Editada: Image Analyst el 27 de Mayo de 2023

0 votos

Please convert this equation into MATLAB code:

1 comentario

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.

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 14 de Dic. de 2020

Comentada:

el 27 de Mayo de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by