2016-04-20 11 views
0

Ich brauche meinen Roh-Eingang zu verwandeln, in FunktionDraw-Funktion in Matlab

dt = 0.01; 
t1 = 0:dt:1; 
t2 = 1+dt:dt:2.5; 
t3 = 2.5+dt:dt:3.5; 
t4 = 3.5+dt:dt:4; 
t5 = 4+dt:dt:4.5; 

y1 = ones(size(t1))*-1; 
y2 = 2*(t2-2.5); 
y3 = 1*sin(2*pi*(t3-1)); 
y4 = ones(size(t4))*0; 
y5 = rand(size(t5))-0.5;; 

plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

"Dies funktioniert gut ^^^^."

Hier habe ich es getan, aber etwas ist falsch im Skript.

Wo habe ich Fehler gemacht?

Wie sein Aussehen jetzt

function [t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5]=funct(t) 
t = 0.01; % Its every step (0<=t) = (0<=0.01) 


t1 =t((0<=t)&(t<1)); 
y1 = ones(size(t1))*-1; 


t2 =t((1<=t)&(t<2.5)); 
y2 = 2*(t2-2.5); 


t3 = t((2.5<=t)&(t<3.5)); 
y3 = 1*sin(2*pi*(t3-1)); %you wrote sn here 


t4 =t((3.5<=t)&(t<4)); 
y4 = ones(size(t4))*0; 


t5=t((4<=t)&(t<4.5)); 
y5 = rand(size(t5))-0.5; 


plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

Antwort

0

ich das gleiche Ergebnis zu erhalten. Zuerst habe ich laufen Code:

dt = 0.01; 
t1 = 0:dt:1; 
t2 = 1+dt:dt:2.5; 
t3 = 2.5+dt:dt:3.5; 
t4 = 3.5+dt:dt:4; 
t5 = 4+dt:dt:4.5; 

y1 = ones(size(t1))*-1; 
y2 = 2*(t2-2.5); 
y3 = 1*sin(2*pi*(t3-1)); 
y4 = ones(size(t4))*0; 
y5 = rand(size(t5))-0.5;; 

plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

und diese erhalten: enter image description here

Nachdem ich versucht, Ihre Funktion auszuführen:

t = 0:dt:5; 
funct(t) 

enter image description here

wo

function y=funct(t) 
%dt = 0.01; %this is not necessary I think 

%t1 = 0:dt:1; 
t1 =t((0<=t)&(t<1)); 
y1 = ones(size(t1))*-1; 

%t2 = 1+dt:dt:2.5; 
t2 =t((1<=t)&(t<2.5)); 
y2 = 2*(t2-2.5); 

%t3 = 2.5+dt:dt:3.5; 
t3 = t((2.5<=t)&(t<3.5)); 
y3 = 1*sin(2*pi*(t3-1)); %you wrote sn here 

%t4 = 3.5+dt:dt:4; 
t4 =t((3.5<=t)&(t<4)); 
y4 = ones(size(t4))*0; 

%t5 = 4+dt:dt:4.5; 
t5=t((4<=t)&(t<4.5)); 
y5 = rand(size(t5))-0.5; 

y=[y1 y2 y3 y4 y5]; 

figure 
plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) 

Ich habe gerade sn-> sin in Ihrem Code korrigiert. Auch nicht, wenn Sie versucht, plot(t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5) außerhalb der Funktion ausführen, kann es nicht funktionieren, weil die Funktion, wie sie ist, nicht genügend Ausgänge hat.

function [t1, y1, t2, y2, t3, y3, t4, y4, t5 ,y5]=funct(t) 

this helps:

Sie sollten die erste Zeile in der folgenden Weise verändern. Waren die Fehler unterschiedlich?

+0

Im Moment funktioniert es aber, jedes Mal, wenn ich es grafiere gibt mir leere Grafik, edited ich meinen Code in meinem Hauptpost ^^^. –

+0

** Über Eingänge, dt = 0,01 sollte t = 0,01, ich habe es behoben und jetzt gibt es genug Eingänge ** –

+0

@DasHas versuchen zu definieren 't = 0: dt: 5' nicht' 1'. – shamalaia