How can I solve this problem using for loop?

for the given vector [2 2 5 8], without using sum() and diff() how can i perform 2*2 + 2*5 + 5*8 = 54. Using for loop. here the consicutive number are multiplied and then addition is performed.

回答 (2 件)

Matt J
Matt J 2021 年 11 月 11 日

0 投票

v=[2 2 5 8];
for i=1
result=v(1:end-1)*v(2:end).'
end
result = 54

7 件のコメント

DGM
DGM 2021 年 11 月 11 日
Oof. I missed the requirement to have a superfluous loop. I guess I flunked that test.
Manav Divekar
Manav Divekar 2021 年 11 月 11 日
Sorry this is not working
DGM
DGM 2021 年 11 月 11 日
You'll have to describe how it's not working for you.
Manav Divekar
Manav Divekar 2021 年 11 月 11 日
function [out] = pairprodsum (m)
s = 0
for i = 1
b = m(1:end-1).*m(2:end);
s = s + b;
end
out = s;
If i use it in this i am just able to get the multiplied array, i am trying to get the sum also
Matt J
Matt J 2021 年 11 月 11 日
編集済み: Matt J 2021 年 11 月 11 日
That's not what I proposed. I had
b = m(1:end-1)*m(2:end).';
Manav Divekar
Manav Divekar 2021 年 11 月 11 日
this is giving a matrix, not the summation.
Matt J
Matt J 2021 年 11 月 11 日
編集済み: Matt J 2021 年 11 月 11 日
I demonstrated to you in my original answer that it does give the summation. This is assuming the vector is a row vector, which it was in your original post.

サインインしてコメントする。

Emmanuel
Emmanuel 2024 年 1 月 23 日

0 投票

total = 0;
x = [2,2,5,8];
n = length(x);
for i =1:n-1
total = total + x(i)*x(i+1);
end
disp(total)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

リリース

R2021a

タグ

質問済み:

2021 年 11 月 10 日

回答済み:

2024 年 1 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by