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

     

     

  • 相关阅读:
    通过 Ansible role 安装 Jenkins Server
    常见 Bash 内置变量介绍
    Ansible 简介
    为容器化的 Go 程序搭建 CI
    Bash Shebang 小结
    Docker Compose 引用环境变量
    Docker Compose 之进阶篇
    Docker Compose 原理
    WEB程序调用客户端程序
    读书笔记2014第5本:《乔纳森传》
  • 原文地址:https://www.cnblogs.com/MarshallL/p/4047880.html
Copyright © 2011-2022 走看看