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.

Réponses (2)

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

7 commentaires

DGM
DGM le 11 Nov 2021
Oof. I missed the requirement to have a superfluous loop. I guess I flunked that test.
Sorry this is not working
DGM
DGM le 11 Nov 2021
You'll have to describe how it's not working for you.
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 le 11 Nov 2021
Modifié(e) : Matt J le 11 Nov 2021
That's not what I proposed. I had
b = m(1:end-1)*m(2:end).';
this is giving a matrix, not the summation.
Matt J
Matt J le 11 Nov 2021
Modifié(e) : Matt J le 11 Nov 2021
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.

Connectez-vous pour commenter.

Emmanuel
Emmanuel le 23 Jan 2024

0 votes

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)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Produits

Version

R2021a

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by