如何区分matlab中的函数?我尝试过:
syms x;
f = 3x^2 + 2;
A = diff(f);
disp(A);
我的问题是现在我想给x后一个值(例如A(x = 1),我不知道如何。
答案 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文件或匿名函数