对于MATLAB 2019a及更高版本
>> X = findSymType(expr,'symfun')
X =
[ a(t),b(t)]
从文档中:
在方程式中找到类型为'symfun'的未分配符号函数。
对于以前的MATLAB版本,我没有看到这样的功能。我看到的唯一选择是自己编写一个函数。
>> feval(symengine,'type',expr)
ans =
_plus
>> feval(symengine,b(t))
ans =
function
>> feval(symengine,sin(t))
ans =
sin
mupad类型函数可让您识别正在寻找“函数”的表达式的类型。这是一些代码,用于查找特定类型的所有术语:
function z=mst(x,symtype)
y=children(x);
if strcmpi(char(feval(symengine,x)),symtype)
z=x;
else
z=[];
end
if ~isequal(x,y)
for ix=1:numel(y)
z=[z;mst(y(ix),symtype)];
end
end
end
一个示例调用:
>> mst(expr,'function')
ans =
b(t)
a(t)
a(t)
b(t)
本文链接:https://www.f2er.com/2797330.html