2017-05-27 37 views
0

這是我在matlab中的第一個腳本。 (我不能使用功能)matlab中的多值函數圖

比方說,我有時間的矢量瞬間

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

而我的職責是m

這是它實現了一部分:

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

正如我意識到的,m只有一個值等於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; 

然後調用函數mtm(t)