hi i am a beginner to matlab? can anyone help me with this problem?
1 view (last 30 days)
AstroGuy1984 on 8 Apr 2019
The problem is in how you're indexing your velocity vector. Think about how you're defining "t". For example, the way you're calling Vpiecewise, your t vector will range from -5 to 80 in tiny increments. You are then saying to MATLAB that you want v(-5) = (the first of your if/then). In algebra class this may make sense, because you understand it to be "velocity when t=-5)".
MATLAB does not. It is going entirely on what index in the vector it is. So it doesn't understand what the -5th index is (nor will it understand a fractional index).
One solution would be to pre-allocate a vector V before your loop and index that. for example:
t = t_start:0.01:t_end;
Nt = numel(t);
v = nan(1,Nt);
for t_idx = 1:Nt
if t(t_idx) < 10
v(t_idx) = 11 * t(t_idx)^2 - 5*t(t_idx)
What's happening in this case is the interation is on the number of indicies not the value of t itself like in your code. I prefer to pre-allocate my vectors as NaNs to help me spot issues, but you may choose anything you want. ones()*value can be good for this.