首页 > 解决方案 > MATLAB通过double将符号表达式转换为数字

问题描述

我的代码有点问题,我找不到解决它的好方法。问题似乎在于使用 double 将符号表达式转换为可以使用 double 绘制的数字表达式。

这是我的代码:

P1 = [-1.5, -2]
P2 = [2, 2]
P3 = [-2.5, 2.5]
P4 = [2, -1]

syms x 
syms y
c = 299792.458e3

r1i = sqrt((P1(1,1) - x)^2 + (P1(1,2) - y)^2)
r2i = sqrt((P2(1,1) - x)^2 + (P2(1,2) - y)^2)
t21 = -3.7294e-6
S = double(solve(t21 == (r2i-r1i)/c, y))

但是,这会产生错误:

Error using symengine
DOUBLE cannot convert the input expression into a double array.

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

Error (line 18)
S = double(solve(sym(t21) == (r2i-r1i)/c, y))

我做了一些谷歌搜索,但我找不到任何其他网站谈论类似的问题。有人可以帮助我吗?非常感谢您的宝贵时间和帮助!


这个问题已被标记为重复,但它不太适合其他已识别的链接,因为我正在尝试绘制方程。它应该产生两条双曲线。建议的方法都没有帮助绘图

标签: matlabexpressionsymbolic-math

解决方案


推荐阅读