免责声明。我熟悉 Mathematica 但不熟悉 Matlab,所以如果这是一个新手问题,我深表歉意。
在使用 Matlab 的求解命令时,我在 Matlab 上遇到了一个奇怪的错误:
solve(0.2 = (1.4+1/2)^((1.4+1)/(2*(1.4-1)))*(M)/((1+(1.4-1)/2*M^2))^((1.4+1)/(2*(1.4-1))), M)
错误是:
Error: The expression to the left of the equals sign is not a valid target for an assignment.
Mathematica 中等效的 Solve 命令(使用相同的表达式)完美运行,所以我不认为我的表达式本身是无效的。此外,当我尝试使用文档网站上的示例时,我得到了同样的错误:http: //www.mathworks.com/help/symbolic/mupad_ref/solve.html
是配置问题还是我误解的命令语法有什么问题?
编辑:我也尝试使用 == 而不是 =,但我得到了一个不同的错误:
Undefined function or variable 'M'.
另外,请注意,我正在运行 Matlab R2011b (7.13.0.564) 64 位 (glnxa64)。
Edit2:我用 syms 尝试了第一个建议的解决方案:
>> syms M
>> solve(0.2 == (1.4+1/2)^((1.4+1)/(2*(1.4-1)))*(M)/((1+(1.4-1)/2*M^2))^((1.4+1)/(2*(1.4-1))), M)
Error using char
Conversion to char from logical is not possible.
Error in solve>getEqns (line 245)
vc = char(v);
Error in solve (line 141)
[eqns,vars,options] = getEqns(varargin{:});
Edit3:即使是最简单的方程式,我也能重现这个问题
>> syms x
>> solve(x^2 -4 == 0, x)
Error using char
Conversion to char from logical is not possible.
Error in solve>getEqns (line 245)
vc = char(v);
Error in solve (line 141)
[eqns,vars,options] = getEqns(varargin{:});
此外,我也尝试了这里建议的解决方案:MATLAB示例失败