使用已定义的向量中的符号表达式定义匿名函数

时间:2012-11-01 18:24:22

标签: matlab

所以这就是我遇到问题的问题。

使用符号引擎求解表达式,但它由某些z进行参数化。现在,您要为变量z。

创建此表达式的函数

以下是代码:

syms a1 a2 a4 b1 b2 b4 c1 c2 c4

[a1, a2, a4, b1, b2, b4, c1, c2, c4] = ...
    solve('a1 + a4 = 1', ...
    'a1*a4 - a2^2 = 0', ...
    'b1 + b4 = 7', ...
    'b1*b4 - b2^2 = 10', ...
    'c1*c4 - c2^2 = 55/4', ...
    'c1 + c4 = 8', ...
    'c1 = a1 + b1', ...
    'c2 = a2 + b2', ...
    'c4 = a4 + b4');

现在我可以做类似

的事情了
a1 = @(z) 13/18 - (- (35*z^2)/81 + (280*z)/81 - 1925/324)^(1/2)/2 - z/18;

将a1定义为已定义的向量a1的第一个条目...

但我希望改为

a1 = @(z) a1(1)

然后能够键入a1(2)或a1(4)以将z的值插入到该表达式中。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

啊,只是浏览堆栈交换相关问题并调整一些代码来找到解决方案:

f = @(t) subs(a1(1), 'z', t).