How to apply for loop in case of product of function inside double summation?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hello all, I am trying to code the following double summation that involves product inside it in MATLAB.
----(1)
I had tried the following code :
pr = 0;
for i = 0:1
for j = 0 : 1
pr_1 = a(i)*b(j);
pr = pr+pr_1;
end
end
P = 1-pr;
My query is that is the above code correctly representing equation (1).
Any help in this regard will be highly appreciated.
2 comentarios
Dyuman Joshi
el 1 de Feb. de 2024
Movida: Dyuman Joshi
el 15 de Feb. de 2024
That is simply the sum of product of pairs in the given index range for a and b, thus P can be defined like this -
P = 1-sum((a(1:2).')*b(1:2),'all')
Keep in mind that indexing in MATLAB starts from 1.
VBBV
el 1 de Feb. de 2024
Though you may not need double for loop as @Dyuman Joshi demonstrated, you can modify your present code as shonn in my answer which i believe is your question about. .
Respuestas (2)
VBBV
el 1 de Feb. de 2024
Editada: VBBV
el 1 de Feb. de 2024
R = 0:1;
a = 1:10; b = -10:10;% define values
for i = 1:length(R)
for j = 1:length(R)
pr_1(i,j) = a(i)*b(j);
end
pr(i) = sum(pr_1(i,:));
end
P = 1-sum(pr)
You can modify the existing code as above
5 comentarios
Torsten
el 1 de Feb. de 2024
Use
pr_1 = a(i+1)*b(j+1);
instead of
pr_1 = a(i)*b(j);
in your code.
Array indexing in MATLAB starts with 1, not with 0.
Matt J
el 2 de Feb. de 2024
Editada: Matt J
el 2 de Feb. de 2024
The most efficient approach, especially as a and b become longer, is to separate the sums, leading to a one-line computation:
P=1-sum(a)*sum(b);
Even if this is intended to be an exercise in writing loops, it would make more sense to write separate loops for sum(a) and sum(b).
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!