• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab接受字符串并转为符号表达式,inline函数,匿名函数形式的方法汇总 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

例1

s='x^2+y^2';
f=sym(s);
g=findsym(f);

运行结果

>> f

f =

x^2 + y^2

>> g

g =

x,y

得到的s是char类型的字符串,f是sym类型的表达式,g是char类型的字符串,如下图所示

要得到,x=1,y=2时f的值,

>> subs(f,findsym(f),{1,2})

ans =

     5

2.接受字符串为内联函数(inline function)

 例2.

s='x^2+y^2';
f=inline(s);

运行结果

>> f

f =

     Inline function:
     f(x,y) = x^2+y^2

得到的s是char类型的字符串,f是sym类型的表达式

要得到x=1,y=2时f的值

>> f(1,2)

ans =

     5

3.接受字符串为匿名函数(anonymous function)

设s 为一个接受的字符串,将其转为匿名函数有三种方法

方法1

f = eval( sprintf('@(x,y) %s', s ))

方法2

f=eval(strcat('@(x,y)',s))

方法3

f=eval(['@(x,y)',s])

例3.

s='x^2+y^2';
f1=eval(sprintf('@(x,y)%s',s));
f2=eval(strcat('@(x,y)',s));
f3=eval(['@(x,y)',s]);

输出结果

>> f1

f1 = 

    @(x,y)x^2+y^2

>> f2

f2 = 

    @(x,y)x^2+y^2

>> f3

f3 = 

    @(x,y)x^2+y^2

输出的f1,f2,f3是相同的匿名函数

要得到x=1,y=2时匿名函数的值

 

>> f1(1,2)

ans =

5

 

 

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
招聘启事的正确阅读方式您知多少? - 疯狂delphi发布时间:2022-07-18
下一篇:
DELPHIhint的应用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap