Function 在Scilab中构造分段定义函数

Function 在Scilab中构造分段定义函数,function,scilab,Function,Scilab,我正在尝试创建函数: xt=-1如果t0 所以我这样做了: 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)); 但它不起作用。它不起作用,因为如果t是一个向量,它有多个元素,例如t=[-1 01],那么 t==0生成向量

我正在尝试创建函数:

xt=-1如果t0 所以我这样做了:

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));

但它不起作用。

它不起作用,因为如果t是一个向量,它有多个元素,例如t=[-1 01],那么 t==0生成向量结果:[F]。因此,您总是得到另一个解决方案:y=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]);
t = linspace(-1,1,10);
clf();
plot2d(t,sign(t),rect=[-1,-2,1,2]);