我正在尝试创建该功能:
所以我这样做了:
function y = x(t);
if t == 0
y = 0;
elseif t < 0
y = -1;
else
y = 1;
end
endfunction
t = linspace(0,100,1000);
plot(t,x(t));
但它不起作用。
答案 0 :(得分:0)
它不起作用,因为如果t是一个向量(具有多个元素),例如t = [ - 1 0 1]然后 t == 0产生矢量结果:[F T F]。因此,你总是得到其他解决方案:y = 1。为了使其有效,您可以:
1。)使用for循环并分别检查t向量的每个元素:
function y = x(t);
for i=1:size(t,"*")
if t(i) == 0
y(i) = 0;
elseif t(i) < 0
y(i) = -1;
else
y(i) = 1;
end
end
endfunction
t = linspace(-1,1,10);
clf();
plot2d(t,x(t),rect=[-1,-2,1,2]);
2.)使用内置的sign()函数,它完全相同,不仅适用于矢量,也适用于矩阵:
t = linspace(-1,1,10);
clf();
plot2d(t,sign(t),rect=[-1,-2,1,2]);