我想画一个图,但是当我在Scilab中运行该程序时,出现了以下法语错误:



这是代码:

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)

最佳答案

错误消息指出,您需要重载<才能使用 bool(boolean) 值和数字(实际上是双矩阵)。发生这种情况是因为在if 0<=t<9.69 thenelseif 9.69<=t<14.45 then行中,您尝试连续执行两次操作。用数学表示法很好,但在这种情况下不行。

Scilab解释

  • 0<=t<9.69作为(0 <= t) < 9.69
  • 9.69<=t<14.45作为(9.69 <= t) < 14.45

  • 因此,第一个括号返回一个 bool(boolean) 值,然后将该 bool(boolean) 值与一个数字进行比较,这没有意义。要解决此问题,您应该使用以和运算符&分隔的两个不同比较:
  • 0<=t<9.69变为(0 <= t) & (t < 9.69)
  • 9.69<=t<14.45变为(9.69 <= t) & (t < 14.45)
  • 关于compiler-errors - 未定义的函数和重载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49040464/

    10-11 02:54