未定义函数和重载
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 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
.
因此,第一个括号 returns 是一个布尔值,然后您将该布尔值与数字进行比较,这没有意义。要解决它,您应该使用 和 运算符分隔的两个不同的比较 &
:
0<=t<9.69
变为 (0 <= t) & (t < 9.69)
,并且
9.69<=t<14.45
变为 (9.69 <= t) & (t < 14.45)
.
我想画一个图,但是当我 运行 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 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
.
因此,第一个括号 returns 是一个布尔值,然后您将该布尔值与数字进行比较,这没有意义。要解决它,您应该使用 和 运算符分隔的两个不同的比较 &
:
0<=t<9.69
变为(0 <= t) & (t < 9.69)
,并且9.69<=t<14.45
变为(9.69 <= t) & (t < 14.45)
.