what correction is required in the code?
情報
この質問は閉じられています。 編集または回答するには再度開いてください。
古いコメントを表示
I am trying to perform 2*2 + 2*5 + 5*8, for [2 2 5 8] vector which is product of consicutive and sum of all. without using sum() & diff() and using for loop
function [out] = pairprodsum (m)
s = 0
for i = 1
b = m(1:end-1).*m(2:end);
s = s + b;
end
out = s;
0 件のコメント
回答 (2 件)
James Tursa
2021 年 11 月 11 日
0 投票
If the homework assignment specifies you must use a loop, then I don't think the intent was for you to wrap a simple i=1 range around vectorized code. That being said, I suppose your "loop" technically qualifies.
b is a vector. You simply need to sum all the elements of b and return that. s = s + b does not sum the element of b ... it simply creates a new vector s that is a copy of b. You need different code to sum the elements of b. There are various ways to do this, which I will let you figure out.
4 件のコメント
Manav Divekar
2021 年 11 月 11 日
Walter Roberson
2021 年 11 月 11 日
s+b(i)
Manav Divekar
2021 年 11 月 11 日
James Tursa
2021 年 11 月 11 日
How could you maybe change the for loop range so it added up all of the elements?
A hint: You want to perform this:
- s = 0
- s = s + 2*2
- s = s + 2*5
- s = s + 5*8
You need to loop over the indices of m. There is 1 iteration less than the number of elements of m.
0 件のコメント
この質問は閉じられています。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!