MATLAB Answers

How to create a vector with for loop?

4 views (last 30 days)
Hamzah Faraj
Hamzah Faraj on 14 May 2020
Edited: Hamzah Faraj on 14 May 2020
Hello,
I am trying to devide the values between a vector elements by 0.1. Assume x = [1,4,-1,5,0,-2]. I want to create a vector with that:
If x(k) > x(k-1) : increment by 0.1 ----> x(k-1) : 0.1 : x(k)
if x(k) < x(k-1) : decrement by 0.1 ----> x(k-1) : -0.1 : x(k)
In my attempt, it only shows the results between last two elements (0 and -2), but I need the values for the elements.
Any help is appreciated. Thanks!
x = [1,4,-1,5,0,2];
for k=2:length(x)
if x(k) > x(k-1)
vt = v(k-1):0.1:v(k);
else
vt = x(k-1):-0.1:x(k);
end
end

  0 Comments

Sign in to comment.

Accepted Answer

Geoff Hayes
Geoff Hayes on 14 May 2020
Hamzah - on each subsequent iteration of your loop, you are overwriting the data from the previous iteration since you are setting vt to something new. You need to concatenate the new data with the previous data so that you don't lose anything. Try the following:
x = [1,4,-1,5,0,2];
vt = [];
for k=2:length(x)
if x(k) > x(k-1)
vt = [vt x(k-1):0.1:x(k)];
else
vt = [vt x(k-1):-0.1:x(k)];
end
end

  1 Comment

Hamzah Faraj
Hamzah Faraj on 14 May 2020
Thank you Geoff Hayes. It does return the required results.

Sign in to comment.

More Answers (0)