# 错误(4470)
# 错误信息
除法表达式 %1!s! 非法, 除数不是数值标量, 其类型为 %2!s!.
# 产生原因
二元重载运算符 “/” 对应的除法表达式中除数是数组, 则报出错误 4470.
# 解决方法
将二元重载运算符 “/” 对应除法表达式中除数确定为标量即可.
# 示例
model _4470_ExpressionDivisionError
record Complex
Real re;
Real im;
operator function '/'
input Complex c1;
input Complex c2;
output Complex result "=c1/c2";
annotation (Inline = true);
algorithm
result := Complex((c1.re * c2.re + c1.im * c2.im) / (c2.re ^ 2 + c2.im ^ 2), (-c1.re * c2.im + c1.im * c2.re) / (c2.re ^ 2 + c2.im ^ 2));
end '/';
end Complex;
Complex x1 = Complex(2, 3);
Complex x2[2] = {Complex(2, 3), Complex(1, 2)}; // Error: 4470
//Complex x2 = Complex(1, 2); // OK
Complex x3 = x1 / x2;
end _4470_ExpressionDivisionError;