How do i convert this for loop into a while loop?

9 views (last 30 days)
I just couldn't figure out how to convert it into a while loop. here is the code:
clc;
clear;
clear all;
n=input('Enter the number of elements in your array:'); % number of array elements
for i=1:n
values(i)=input('Enter the values:')
if values(i)<0
values(i)=values(i)*(-1)
end
end
for k=1:(n-1)
d=k+1
Xaverage(k)=(values(d)+values(k))/2
end
y=1:1:n;
plot(values,y)
hold on
z=1:1:(n-1);
plot(Xaverage,z)
  1 Comment
Ilker Enes Çirkin
Ilker Enes Çirkin on 28 May 2019
this is what i have tried so far:
clc;
clear;
clear all;
n=input('Enter the number of elements in your array:'); % number of array elements
i=1;
while i<n
values(i)=input('Enter the values:');
if values(i)<0
values(i)=values(i)*(-1)
end
end
k=1;
while k<(n-1)
d=k+1
Xaverage(k)=(values(d)+values(k))/2
end
y=1:1:n;
plot(values,y)
hold on
z=1:1:(n-1);
plot(Xaverage,z)

Sign in to comment.

Accepted Answer

James Tursa
James Tursa on 28 May 2019
This for loop:
for i=1:n
% stuff
end
is equivalent to this while loop:
i = 1;
while i <= n
% stuff
i = i + 1;
end
Your biggest problem is you never increment i or k in your while loops.
  2 Comments

Sign in to comment.

More Answers (1)

Ilker Enes Çirkin
Ilker Enes Çirkin on 28 May 2019
This is my current code:
n=input('Enter the number of elements in your array:'); % number of array elements
i=1;
while i<=n
i=i+1;
values(i)=input('Enter the values:')
if values(i)<0
values(i)=values(i)*(-1)
end
end
k=1;
while k<=(n-1)
k=k+1;
d=k+1
Xaverage(k)=(values(d)+values(k))/2
end
y=1:1:n;
plot(values,y)
hold on
z=1:1:(n-1);
plot(Xaverage,z)
  2 Comments

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

No tags entered yet.

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!