Hey, I am new to MATLAB. I am running the following code and cant figure out why the plot shows no data. I know it is showing only the last iteration, but I dont know how to fix it. I have tried using/not using a for loop, I basically need a plot of v vs t. But I would like to learn how to plot results of a for loop. PLEASE HELP:
%for
t= [-5.0:0.5:50.0] %s
if t>=0 & t<=10
v=(11*(t.^2))-(5*t)
elseif t>=10 & t<=20
v=1100-(5*t)
elseif t>=20 & t<=30
v=(50*t)+2*((t-20)^2)
elseif t>30
v=1520* exp(-0.2*(t-30))
else
v=0
end
format long g
%end
%Tab=table(t(:), v(:))
plot(t(:),v(:))
hold on
File is also attached.

 Accepted Answer

Adam Danz
Adam Danz on 26 Jan 2021
Edited: Adam Danz on 26 Jan 2021
The solution involves matlab indexing which is a very basic skill to know before making much progress.
This should get you started.
t= [-5.0:0.5:50.0];
v = zeros(size(t));
idx = t>=0 & t<=10;
v(idx) = (11*(t(idx).^2))-(5*t(idx));
idx = t>=10 & t<=20;
v(idx) = 1100-(5*t(idx));
% repeat for the other indices

2 Comments

Thanks Mr. Danz!
Does this mean that a for loop/if statement is not required or would this work even if i added for/if statements to this?
Thanks, you are awesome!
This solution does not need any loops or conditional statements.
Indexing acts as conditons. The "idx" variable is a logical vector identifying which values to access and change.

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products

Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!