matlab中的多值函数图

时间:2017-05-27 11:32:06

标签: 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

t 值的位置

1 个答案:

答案 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函数,例如m(t)