区分matlab中的函数

时间:2016-12-23 14:52:31

标签: matlab

如何区分matlab中的函数?我尝试过:

syms x;
f = 3x^2 + 2;
A = diff(f);
disp(A);

我的问题是现在我想给x后一个值(例如A(x = 1),我不知道如何。

3 个答案:

答案 0 :(得分:2)

首先,您的代码中存在错误,您不能暗示乘法,您需要编写3*x^2而不是3x^2

另外,如果你为函数提供向量而不是标量,你应该使用元素操作(包括幂,乘法等之前的.),这样就变成了3*x.^2

除此之外,还有2个选项:

syms x;
f = 3*x.^2 + 2;

1)像您一样定义A并使用subs替换x,例如1

A = diff(f);
subs(A,x,1);

2)将A定义为匿名函数并更容易调用它。

A = @(y) subs(diff(f),x,y)

现在可以使用不同的值轻松调用A

A(1) 
ans = 6

A(2)
ans = 12

关于元素操作,subs和匿名函数的文档的链接:

https://uk.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html https://uk.mathworks.com/help/symbolic/subs.html https://uk.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html

答案 1 :(得分:1)

像这样修改你的代码:

syms x;
f = 3*x^2 + 2;    % You missed a * here
A(x) = diff(f);   % This creates a symfun
A(1)              % This gives the value of A at x=1

答案 2 :(得分:0)

您需要matlabfunction功能。

  

matlabFunction从sym

生成MATLAB文件或匿名函数