未定义的功能和过载

时间:2018-02-28 23:42:38

标签: compiler-errors scilab

我想绘制一个图表,但是当我在Scilab中运行该程序时,我用法语得到了这个错误:

  

Opérationindéfiniepourlesopérandesdonnées。   vérifieroudéfinirlafonction%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)

1 个答案:

答案 0 :(得分:0)

错误消息表明您需要重载<以使用布尔值和数字(实际上是双矩阵)。这是因为在行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
  3. 因此,第一个括号返回一个布尔值,然后将所述布尔值与一个数字进行比较,这个数字没有意义。要解决此问题,您应该使用由运算符&分隔的两种不同的比较:

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