the mysterious for loop
1 view (last 30 days)
Show older comments
peter karlsson
on 23 Nov 2019
Commented: Rena Berman
on 12 Dec 2019
okey, I am going to create a program that will find a specifit value in a graf
the distance:km i a 1:1000 vector. the y axis
spped_kmph is the same. the x axis
in this program i can put in a single value like 5 and i will find how fast the car was at that point
THE PROBLEM: i Want to put in a vector so i can find the speed at more than 1 point at the time but when i put in a vector i get the message ( Operands to the || and && operators must be convertible to logical scalar values. )
Can someone figure out the for loop i need to put in?
So if i put in a vecor x = [4:10] it will go throuh all those values one by one and in the end sopt out 6 values for ''v''
function v=velocity_(x, route)
load(route);
index = findpos(distance_km', x);
%i need to put in a for loop here
x1 = distance_km(index-1);
x2 = distance_km(index);
y1 = speed_kmph(index-1);
y2 = speed_kmph(index);
v = y1 * (x-x2)./(x1-x2)+y2*(x-x1)./(x2-x1)
end
------
findpos is this function
------
function index = findpos(vector,val)
vMAX = length(vector);
x=1
if val < vector(1) || val > vector(vMAX)
index = -1;
elseif val == vector(1)
index = 2;
else
while val > vector (x)
x = x+1;
end
index = x;
end
Accepted Answer
Star Strider
on 23 Nov 2019
4 Comments
Star Strider
on 24 Nov 2019
As always, my pleasure.
I do not understand what you are doing.
I encourage you to experiment to see what works.
More Answers (1)
Walter Roberson
on 23 Nov 2019
function index = findpos(vector, vals)
index = interp1(vector, 1:length(vector), vals, 'previous');
index(isnan(index)) = -1;
end
0 Comments
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!