2017-05-27 77 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)