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.

 Risposta accettata

Adam Danz
Adam Danz il 26 Gen 2021
Modificato: Adam Danz il 26 Gen 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 Commenti

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!
Adam Danz
Adam Danz il 26 Gen 2021
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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics Performance in Centro assistenza e File Exchange

Prodotti

Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by