How to apply for loop in case of product of function inside double summation?

조회 수: 1 (최근 30일)
chaaru datta
chaaru datta 2024년 2월 1일
이동: Dyuman Joshi 2024년 2월 15일
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
Dyuman Joshi
Dyuman Joshi 2024년 2월 1일
이동: Dyuman Joshi 2024년 2월 15일
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
VBBV 2024년 2월 1일
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. .

댓글을 달려면 로그인하십시오.

답변 (2개)

VBBV
VBBV 2024년 2월 1일
편집: VBBV 2024년 2월 1일
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
Torsten
Torsten 2024년 2월 1일
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
Matt J 2024년 2월 2일
편집: Matt J 2024년 2월 2일
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).

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by