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일
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.
Sorry this is not working
DGM
DGM 2021년 11월 11일
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 2021년 11월 11일
편집: Matt J 2021년 11월 11일
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 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 Exchange에서 Loops 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