zoukankan      html  css  js  c++  java
  • Matlab 接受字符串并转为符号表达式,inline函数,匿名函数形式的方法汇总

    1.接受字符串为符号表达式(symbolic expression)

    例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

     

     

  • 相关阅读:
    Linux 添加环境变量
    postgresql 获取修改列的值
    5月30日周一上午
    周日5月29日
    2016年5月26日
    如何使用Gson(添加到项目里去)
    linux内核分析课程总结()待完善
    5月5日离散课笔记
    4月28日的离散课(还少了一部分)
    2016年4月29日
  • 原文地址:https://www.cnblogs.com/MarshallL/p/4047880.html
Copyright © 2011-2022 走看看