How to apply for loop in case of product of function inside double summation?
2 ビュー (過去 30 日間)
古いコメントを表示
Hello all, I am trying to code the following double summation that involves product inside it in MATLAB.

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!