How to make a piecewise function and plot it ?

1 vue (au cours des 30 derniers jours)
Luca Amicucci
Luca Amicucci le 29 Sep 2020
Hi guys!
I want to write a piecewise function , with 4 case , and so I made this :
H = 2;
w = 209.439509; % 2000 rpm
a = 0;
for i = 1:360
w2(i,1) = w; % w2 angular velocity (rad/s)
a2(i,1) = a; % a2 angular acceleration (rad/s^2)
th2(i,1) = i*pi/180; % radiant
th2d(i,1) = i; % degree
% first
if (i) < 90
h1(i,1) = 0;
v1(i,1) = 0;
a1(i,1) = 0;
% second
else if (i) >= 90 && (i) < 180
beta = pi-pi/2;
h2(i,1) = H/pi*( (pi*(th2(i,1)-pi/2))./beta - 1/2*sin((2*pi*(th2(i,1)-pi/2))./beta) );
v2(i,1) = (H.*w2(i,1))./(beta) .* ( 1 - cos( (2*pi*(th2(i,1)-pi/2))./beta) );
a2(i,1) = ( 2*H*pi.*w2(i,1).^2 ./ beta^2 ).*sin( (2*pi.*(th2(i,1)-pi/2))./(beta) );
% third
else if (i) >= 180 && (i) < 240
h3(i,1) = 0;
v3(i,1) = 0;
a3(i,1) = 0;
% fourth
else (i) >= 240 && (i) < 360
beta2 = -pi/2;
h4(i,1) = H/pi*( (pi*(th2(i,1)-pi*4/3))./beta2 - 1/2*sin((2*pi*(th2(i,1)-pi*4/3))./beta2) );
v4(i,1) = (H.*w2(i,1))./(beta2) .* ( 1 - cos( (2*pi*(th2(i,1)-pi*4/3))./beta2) );
a4(i,1) = ( 2*H*pi.*w2(i,1).^2 ./ beta2^2 ).*sin( (2*pi.*(th2(i,1)-pi*4/3))./(beta2) );
end
end
end
end
figure(1)
plot(th2(1:89),h1);
hold on;
plot(th2(90:179),h2)
hold on;
.....
But it doesn't work because, at the first if statement the vector has the right size (89) , but then at the second if it has the size of the previous one + his correct size ( 89) and so on...
Anyone can help me??
Thanks in advance,
Luca

Réponse acceptée

Sudhakar Shinde
Sudhakar Shinde le 29 Sep 2020
Instead of using h1, h2,h3 and h4 , you can use h variable for all 4 pieces of code.
then use plot
plot(th2,h);
  2 commentaires
Luca Amicucci
Luca Amicucci le 30 Sep 2020
Thankss!!!
Sudhakar Shinde
Sudhakar Shinde le 1 Oct 2020
Welcome

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by