Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2010-06-27, 15:37   #1
bodhitreechen
初级会员
 
注册日期: 2010-06-23
帖子: 3
声望力: 0
bodhitreechen 正向着好的方向发展
默认 如何将符号变量定义的函数表达式转换为句柄形式

将符号变量定义的函数表达式转换为句柄形式
在许多情况下,很需要。好像 Matlab 并没有提供
相关的函数(如果哪位知道请告知)。
下面的m文件将把符号变量表达式定义的普通函数,向量值函数,
或矩阵值函数的转为函数句柄。可以直接使用(已经测试过)。


function f=sym2funh(f_s,x_in)

% sym2funh Convert a function f_s expressed in syms to a function handle.
% Here, x_in are syms which stand for varibles, f_s can be a sale-, vector-,
% or matrix- valued function.

syms x
x=x_in;
if isa(f_s, 'sym')
sf0=char(f_s);
else
error('It is expected that the first input argument is a sym which stand for a function.');
end
for itt=1:length(x)
tempstr=['x(',num2str(itt),')'];
sf0=strrep(sf0,char(x(itt)),tempstr);
end
sf=strrep(sf0,'matrix(','');
adjust=double(length(sf0)~=length(sf));
sf=['@(x) ',sf(1:end-adjust)];
sf=strrep(sf,'],[','];[');
f=eval(sf);








P.S.

最近得知matlab自带的函数matlabFunction

可实现符号函数转换为句柄的功能

以上程序看来是多余了。
上传的附件
文件类型: rar sym2funh.rar (468 字节, 26 次查看)

此帖于 2010-07-25 20:32 被 bodhitreechen 编辑。 原因: 有补充内容
bodhitreechen 当前离线   回复时引用此帖
旧 2010-11-26, 09:16   #2
未注册
游客
 
帖子: n/a
默认 回复: 如何将符号变量定义的函数表达式转换为句柄形式

非常感谢楼主。我用的matlab版本没有matlabFunction这个函数。你写的这个函数我找了好久了,对我的帮助很大!
  回复时引用此帖
旧 2010-12-07, 00:58   #3
shengsheng
初级会员
 
shengsheng 的头像
 
注册日期: 2010-08-27
年龄: 25
帖子: 4
声望力: 0
shengsheng 正向着好的方向发展
默认 回复: 如何将符号变量定义的函数表达式转换为句柄形式

确实不错!如果能举个具体的例子的话,那就更好了。
shengsheng 当前离线   回复时引用此帖
旧 2012-11-19, 16:21   #4
1027765819
初级会员
 
注册日期: 2012-11-19
帖子: 1
声望力: 0
1027765819 正向着好的方向发展
默认 回复: 如何将符号变量定义的函数表达式转换为句柄形式

请问楼主自带的函数名称是什么?
1027765819 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 14:18


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.