未定义函数和重载

Undefined function and overload

我想画一个图,但是当我 运行 Scilab 中的程序时,我在法语中得到这个错误:

Opération indéfinie pour les opérandes données. vérifier ou définir la fonction %b_1_s pour la surcharge.

代码如下:

for t=[0:9.69:19.38]
    if 0<=t<9.69 then
        v=0;
    elseif 9.69<=t<14.45 then
        v=1.548*t;
    else
        v=15;
    end 
end
plot(t,v)

错误消息说您需要重载 < 才能处理布尔值和数字(实际上是双矩阵)。发生这种情况是因为在行 if 0<=t<9.69 thenelseif 9.69<=t<14.45 then 中您尝试连续执行两个操作。这在数学符号中很好,但在这种情况下不行。

Scilab 解释

  1. 0<=t<9.69 作为 (0 <= t) < 9.69,并且
  2. 9.69<=t<14.45 作为 (9.69 <= t) < 14.45.

因此,第一个括号 returns 是一个布尔值,然后您将该布尔值与数字进行比较,这没有意义。要解决它,您应该使用 运算符分隔的两个不同的比较 &:

  1. 0<=t<9.69 变为 (0 <= t) & (t < 9.69),并且
  2. 9.69<=t<14.45 变为 (9.69 <= t) & (t < 14.45).