我想画一个图,但是当我在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 then
和elseif 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/