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