MATLAB Answers

0

hi i am a beginner to matlab? can anyone help me with this problem?

Asked by Koo Ian Keen on 8 Apr 2019
Latest activity Edited by madhan ravi
on 8 Apr 2019
her is my function file
here is my command to run function file

  1 Comment

upload code instead of picture, otherwise it forces someone to type in the code for you again

Sign in to comment.

1 Answer

Answer by AstroGuy1984 on 8 Apr 2019
 Accepted Answer

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)
elseif
% etcetera...
end
end
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.

  0 Comments

Sign in to comment.