gpt4 book ai didi

具有按元素运算的 MATLAB 符号输出

转载 作者:行者123 更新时间:2023-12-02 05:20:15 26 4
gpt4 key购买 nike

是否有函数或技术可以将 MATLAB 的符号表达式转换为可以按元素计算的表达式?

作为示例,命令

a = solve('x^2 + a*x + b == 0')

给出输出

a = 
(a^2 - 4*b)^(1/2)/2 - a/2
- a/2 - (a^2 - 4*b)^(1/2)/2

但是,允许 ab 为数组的所需输出是

a = 
(a.^2 - 4*b).^(1/2)/2 - a/2
- a/2 - (a.^2 - 4*b).^(1/2)/2

最佳答案

solve('x^2 + a*x + b == 0') 返回 2x1 符号。我了解您想要评估各种 a 和 b 值的解决方案。为此,您首先需要使用 matlabFunction 将符号转换为函数。

s = solve('x^2 + a*x + b == 0');
f = matlabFunction(s);

现在 f 是两个输入参数 a 和 b 的函数。在三个 a 和 b 值的两个向量上尝试一下:

f([1 2 3],[1 1 1])

您将得到一个 2x3 的解决方案数组。

您还可以使用 subs 来实现您想要做的事情:

subs(s,{'a' 'b'},{[1 2 3 ] [1 1 1]})

将用 [1 2 3] 代替 a,用 [1 1 1 ] 代替 b 并返回 2x3 sym。如果你想评估它,只需使用 eval:

eval(subs(s,{'a' 'b'},{[1 2 3 ] [1 1 1]}))

关于具有按元素运算的 MATLAB 符号输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21291778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com