How to apply for loop in case of product of function inside double summation?
조회 수: 1 (최근 30일)
이전 댓글 표시
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
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
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
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
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
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).
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!