MuPAD命令出错:DOUBLE无法将输入表达式转换为双数组。 - 没有未定义的符号变量

时间:2015-03-19 23:54:20

标签: matlab

这让我感到非常震惊,特别是因为它之前有效。我的代码是这样的:

%Print the equations
fprintf('did: 0=%s\n',char(vpa(eval(did))));
fprintf('diq: 0=%s\n',char(vpa(eval(diq))));
%Print the parameter values
fprintf('m=%0.5f\n',m);
fprintf('iq=%0.5f\n',iq);
%Solve the qeuations
[L, R] = solve(did==0,diq==0,L,R);
fprintf('L=%s\n',char(vpa(eval(L))));
%Print the actual value
fprintf('L=%0.5f',double(eval(L)));

当然,有些事情是先前定义的。但这并不重要,输出很清楚。我删除了问题的小数精度。

did: 0=0.33/L - (0.75*R)/L + 42.74
diq: 0=0.94/L - (0.68*R)/L - (20.94*m)/(L*iq) - 47.26
m=0.02
iq=0.68
L=0.0075 - (0.24*m)/iq

如您所见,L未完全计算。即使miq已定义,并且分别具有值0.020.68。因此,double(eval(L))打印错误并阻止我继续工作:

Error using mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.

If the input expression contains a symbolic variable, use the VPA function instead.

Error in sym/double (line 702)
        Xstr = mupadmex('symobj::double', S.s, 0);

Error in linearization (line 62)
fprintf('L=%0.5f',double(eval(L)));

我不明白。为什么miq值虽然我将它们定义为double?

0 个答案:

没有答案