这是我在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 = 1
,to/3 to 2*to/3 -> m = -2
和else m=0
答案 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)
。