2017-05-27 2 views
0

Dies ist mein erstes Skript in Matlab. (Ich kann nicht Funktionen verwenden)Mehrwertige Funktionsgraph in Matlab

Lassen Sie uns sagen, ich habe ein Vektor von Zeit

Punkten
t = [0:999]*1e-5; %vector of time instants 

Und meine Funktion ist m

Dies ist der Teil, wo sie umgesetzt wird:

if (t >= 0) 
    if t <= to/3 
     m = 1; 
    elseif (t <= 2*to/3) 
     m = -2; 
    end  
else 
    m = 0; 
end 

Wie ich erkannte, hat m nur einen Wert gleich 1.

Wie ist es möglich, hier einen 1x1000 Wert zu haben? Wo für Werte von t von 0 to to/3 -> m = 1, to/3 to 2*to/3 -> m = -2 und else m=0

Antwort

0

Sie können eine Funktion für jedes Element eines Arrays mit arrayfun wie die folgenden Bedingungen zutreffen:

arrayfun(@(x) m(x), t) 
%or 
arrayfun(@m, t) 

Sie können die Details finden here.

function result = m(t) 
result = t; 
result(t >= 0 && t <= to/3) = 1; 
result(t > to/3 && t <= 2*to/3) = -2; 
result(t < 0) = 0; 

dann rufen Sie die Funktion m auf t wie m(t): Auch können Sie Ihre Funktion wie folgt implementieren.

Verwandte Themen