zoukankan      html  css  js  c++  java
  • Matlab自定义函数的五种方法 [转]

    1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件;

    2、函数文件+子函数:定义一个具有多个自定义函数的M文件;

    3Inline:无需M文件,直接定义;

    4Syms+subs: 无需M文件,直接定义;

    5、字符串+subs:无需M文件,直接定义.

    1、函数文件+调用函数文件:定义多个M文件:

    调用函数文件:myfile.m

    clear

    clc

    for t=1:10

    y=mylfg(t);

    fprintf(‘%4d^(1/3)=%6.4f\n’,t,y);

    end

    %自定义函数文件: mylfg.m

    function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致

    Y=x^(1/3);

    注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。

    2、函数文件+子函数:定义一个具有多个子函数的M文件

    %命令文件:funtry2.m

    function []=funtry2()

    for t=1:10

    y=lfg2(t)

    fprintf(‘%4d^(1/3)=%6.4f\n’);

    End

    function y=lfg2(x)

    Y= x^(1/3);

    %注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。

    3Inline:无需M文件,直接定义;

    %inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)

    调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。

    例如:

    f=inline(‘x^2+y’,’x’,’y’);

    z=f(2,3)

    Ans=7

    注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算

    例:

    Clear

    Clc

    f=’x^2’;

    Syms x g;

    g=x^2;

    h=inline(‘x^2’,’x’);

    4Syms+subs: 无需M文件,直接定义;

    syms定义一个符号表达式,用subs调用:

    Syms f x %定义符号

    f=1/(1+x^2); %定义符号表达式

    subs(f, ‘x’, 代替x的数值或符号)

    注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。

    这种函数定义方法的特点是,可以用符号进行替换

    Syms f x

    f=1/(1+x^2);

    subs(f, ‘x’,’y^2’)

    ans=

    1/(1+(y^2)^2)

    注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。

    5、字符串+subs:无需M文件,直接定义.

    直接定义一个字符串,用subs命令调用。例如:

    f=’1/(1+x^2)’ %定义字符串

    z=subs(f,’x’,2)

    g=subs(f,’x’,’y^2’)

    注:优点是,占用内存最少,定义格式方面自由。

    缺点是,无法对字符进行符号转化。

    当所要替代的符号在调用前都已经有了数值定义,则可以直接调用subs(f).例如:

    f=’x^2*y’;

    x=2;y=3;

    subs(f)

    ans=12

     

    [转] http://apps.hi.baidu.com/share/detail/23406825

  • 相关阅读:
    wpf 命令
    wpf 事件
    wpf 依赖属性介绍
    wpf binging (六)多绑定
    ISI的晶圆级MRAM测试仪
    常见存储器分类
    存储器SDRAM简要历史
    当前MRAM市场以及专用MRAM设备测试的重要性
    IPUS SQPI PSRAM为STM32单片机提供RAM扩展方案
    单端口SRAM与双端口SRAM电路结构
  • 原文地址:https://www.cnblogs.com/longdouhzt/p/2604291.html
Copyright © 2011-2022 走看看