plotting a graph of time vs gear...updated

2 views (last 30 days)
based on V=1.5*t^2
a car has an auto-transmission that selects gear based on speed values.
Gear1: >=0 and < 3m/s
Gear2: >=3 and < 8 m/s
Gear3:>=8 and < 15 m/s
and so on...need to graph this and not sure where to start. Thank you
here's what I have...The first graph works perfect...its the second one im stuck on...thanks
t=1:1:6;
V=1.5*t.^2;
plot(t,V)
grid on % adds grid lines
xlabel('Time(s)') % adds x label
ylabel('Speed(m/s)') % ADDS Y LABEL
title('Speed of a Car') % adds Title
t=1:.1:6;
V=(1.5)*t.^2;
if (V>= 0 & V < 3)
Gear=1;
elseif (V>=3 & V < 8)
Gear=2;
elseif (V>= 8 & V < 15)
Gear=3;
elseif (V>= 15 & V< 25)
Gear=4;
else
Gear=5;
end
figure % opens 2nd graph
plot(t,Gear)
grid on
xlabel('Time(s)')
ylabel('Gear')
title('Gear Selection')

Accepted Answer

Matt Tearle
Matt Tearle on 13 Feb 2014
If I interpret this correctly, you're trying to see which gear you're in at time t? So you need to calculate v from t, then g (= 1, 2, or 3) from v. The neatest way to do that is to use histc for binning:
t = linspace(0,5);
v = 1.5*t.^2;
[~,g] = histc(v,[3 8 15 Inf]);
subplot(2,1,1)
plot(t,v)
subplot(2,1,2)
plot(t,g)
Note: if this happens to be a homework problem, do not hand this in! It is almost certainly not what the expected answer will be, and will be a pretty major flag that you didn't do it yourself :) Instead, let me know, and I'll give you pointers in the "right" direction...
  3 Comments
Matt Tearle
Matt Tearle on 13 Feb 2014
Your problem is that Gear is a scalar value. Your logical conditions are doing something hairy and unexpected because V is a vector, so V < 3 is a logical array, not a scalar condition. However, when used in an if statement, MATLAB goes ahead and decides to do something anyway (something that I doubt you actually want it to do). But in the end, it's making a single logical choice, and producing a single value for Gear.
What you need is that for each value of V, to determine the corresponding value for Gear (which, at the end, should be a vector the same size as V).
There are a few different ways to do that. The neatest, IMO, is the one I showed with histc.
Joseph
Joseph on 13 Feb 2014
That worked great...I posted another question a couple hours ago about a conversion program...any help with that would be appreciated

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots 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!