2017-05-27 4 views
0

これはmatlabの私の最初のスクリプトです。matlabの多値関数グラフ

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

だが、私は時間のベクトルが

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

をインスタントや私の機能は、これはそれが実装されている部分であるm

であるとしましょう(私は、関数を使用することはできません)

私が気付いたように、mは1に等しい1つの値しか持っていません。

ここに1x1000の値を設定するにはどうすればよいですか?どこ0 to to/3 -> m = 1to/3 to 2*to/3 -> m = -2else m=0

答えて

0

からトンの値については、次のようなarrayfunを使用して、配列の各要素に関数を適用することができます

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

あなたは詳細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; 

、その後、m(t)などtに機能mを呼び出します。