精华内容
下载资源
问答
  • PAGE / NUMPAGES Matlab 自定义函数 ?1函数文件+调用命令文件需单独定义一个自定义函数的M文件; ?2函数文件+子函数定义一个具有多个自定义函数的M文件 ?3Inline:无需M文件直接定义 ?4Syms+subs?无需M文件,直接定义 ?...
  • 原创Matlab中S函数建立与应用-S函数建立与应用.pdf 本文详细介绍了Matlab S函数建立与应用,文中有实例。希望能对大家有所帮助。
  • 今天偶然发现了Matlab可以像Python一样,有类函数的概念。具体这么做: 需求 假设现在需要设计一个数学计算类,类下面可以自己定义加减乘除,然后调用这个类实现混合运算。 实现 创建一个 my_math.m (即和类函数名字...

    今天偶然发现了Matlab可以像Python一样,有类函数的概念。具体这么做:

    需求

    假设现在需要设计一个数学计算类,类下面可以自己定义加减乘除,然后调用这个类实现混合运算。

    实现

    创建一个 my_math.m (即和类函数名字一样,这是matlab脚本的传统要求) 脚本文件,内容如下:

    %% 定义类函数
    function m = my_math
    m.add = @my_add;
    m.del = @my_del;
    m.mult = @my_mult;
    m.mix = @my_mix;
    end
    
    %% 定义加法
    function out = my_add(x,y)
    out = x+y;
    end
    
    %% 定义减法
    function out = my_del(x,y)
    out = x-y;
    end
    
    %% 定义乘法
    function out = my_mult(x,y)
    out = x*y;
    end
    
    %% 定义混合运算
    function out = my_mix(x,y)
    m = my_math;  % 实例化
    out = m.mult(m.add(x,y),m.del(x,y));
    end
    

    然后你可以在控制台调用它:

    >> m=my_math;
    >> m.mix(3,1)
    ans =
    
         8
    

    总结

    • 构造类的基本流程就是 先定义类函数,在类函数里构造子函数,并通过句柄 @ 对应的函数
    • 子函数可以独立存在,贴到类函数下面(注意函数要有完整的结构,用 end 结束一个函数)
    • 调用时,先实例化一个类,然后调用子函数即可
    • 子函数内部可以继续调用类函数下的其他子函数
    展开全文
  • % SFUNTMPL 是M-文件 S函数模板 %通过剪裁,用户可以生成自己的S函数,不过一定要重新命名 %利用S函数可以生成连续、离散混合系统等,实现任何模块的功能 % %M-文件S函数的语法为: %[SYS,X0,STR,TS] = ...
    function [sys,x0,str,ts] = sfuntmpl(t,x,u,flag)

    % SFUNTMPL 是M-文件 S函数模板
    %  通过剪裁,用户可以生成自己的S函数,不过一定要重新命名
    %  利用S函数可以生成连续、离散混合系统等,实现任何模块的功能
    %
    %  M-文件S函数的语法为:
    %       [SYS,X0,STR,TS] = SFUNC(T,X,U,FLAG,P1,...,Pn)
    %
    %  参数含义:
    %       t是当前时间
    %       x是S函数相应的状态向量
    %       u是模块的输入
    %       flag是所要执行的任务
    %
    %   FLAG   结果               功能
    %   -----  ------             --------------------------------------------
    %   0      [SIZES,X0,STR,TS]  模块初始化
    %   1      DX                 计算模块导数
    %   2      DS                 更新模块离散状态

    转载于:https://www.cnblogs.com/zhurun/p/4590558.html

    展开全文
  • 本论文详细介绍了MATLAB中S函数的写作规范和注意事项,是学习MATLAB中S-FUNCTION的必备资料。
  • matlab中GUI的建立及图像处理的命令函数整理-matlab图像处理-常用函数列表.doc 关于matlab中GUI的建立及图像处理的命令 函数整理
  • 创建函数的两种方式 (1)m文件 (2)匿名函数 按照书本的步骤进行的 (1) 下面是我的function文件 function y = ellipse(x) y = sqrt(9-x^2); 并保存名字为‘ellipse’的m文件里面 下面是命令窗口运行的 原...

    创建函数的两种方式

    (1)m文件

    (2)匿名函数



    按照书本的步骤进行的

    (1)

    下面是我的function文件

    function y = ellipse(x)
    y = sqrt(9-x^2);

    并保存名字为‘ellipse’的m文件里面


    下面是命令窗口运行的

    原命令函

    >> y = ellipse(4)
    y =
       0.0000 + 2.6458i

    定义和调用匿名函数
    >> f = @ ellipse;
    >> y = f(4)
    y =
       0.0000 + 2.6458i


    (2)
    直接创建匿名函数
    公式要紧跟在后面,syntax是两部分:第一部分 是 @(变量名1,变量名2,。。);第二部分是 包含变量的函数命令,即字符串格式的函数句柄
    >> ellipse = @(x)sqrt(9-x^2)
    ellipse =
        @(x)sqrt(9-x^2)

    访问一下数据结构
    >> whos ellipse
      Name         Size            Bytes  Class              Attributes
      ellipse      1x1                32  function_handle             
    >> ellipse(4)
    ans =
       0.0000 + 2.6458i


    如果没有输入的变量,则在输入变量的括号中用空格代替
    >> show = @() disp('hello')
    show =
        @()disp('hello')
    >> show = @( ) disp('hello')
    show =
        @()disp('hello')
    >> show()
    hello
    >> show
    show =
        @()disp('hello')

    展开全文
  • Matlab中的传递函数传递... 下面分 SISO系统和 MIMO系统 2种情况介绍Matlab中的传递函数模型的表示和建立。 SISO系统(1/7) (1) SISO系统 线性定常连续系统一般以常系数线性常微分方程来描述。 对于一个SISO线性定常...

    Matlab中的传递函数

    传递函数模型(1/1) 1. 传递函数模型 线性定常系统可以是连续系统,也可以是离散系统。 2种系统基于Matlab的传递函数模型和状态空间模型基本一致。 下面分 SISO系统和 MIMO系统 2种情况介绍Matlab中的传递函数模型的表示和建立。 SISO系统(1/7) (1) SISO系统 线性定常连续系统一般以常系数线性常微分方程来描述。 对于一个SISO线性定常连续系统,其常微分方程描述为: 对应的经拉氏变换得到的传递函数模型为 SISO系统(2/7) 在Matlab中,多项式a0sn+a1sn-1+…+an常用数组表达,如n阶多项式可用n+1个元素的数组表达为 [a0 a1 … an] 其中,数组元素按多项式中“s”的降幂顺序排列,其中的“0”不能省略。 因此传递函数的分子与分母多项式可以用2个数组表达 num=[b0 b1 … bn] den=[a0 a1 … an] SISO系统(3/7) 在Matlab中,传递函数模型变量的数据结构为?tf?类,可采用函数命令tf()来描述分子和分母多项式的数组组合,建立控制系统的传递函数模型。 tf()函数命令的主要调用格式为 sys=tf(num,den) 或直接为 sys=tf([b0 b1 … bn], [a0 a1 … an]) 经过上述命令,变量sys即表示上述连续系统传递函数模型。 SISO系统(4/7) 类似地,对于SISO线性定常离散系统,其高阶差分方程模型和z域传递函数模型分别为 建立Matlab的离散定常系统传递函数模型也可采用函数命令tf(),其建立离散系统传递函数的语句为: num=[b0 b1 … bm] den=[a0 a1 … an] sys=tf(num, den, Ts) SISO系统(5/7) 或直接为 sys=tf([b0 b1 … bn], [a0 a1 … an] , Ts) 其中,Ts为采样周期的值。 当Ts=-1或者Ts=[]时,则系统的采样周期未定义。 经过上述命令,变量sys即表示上述离散系统传递函数模型。 SISO系统(6/7) Matlab问题1 试在Matlab中建立离散系统 的传递函数模型。 Matlab程序m2-1如下。 SISO系统(7/7) Matlab程序m2-1执行结果如下。 对已建立好的SISO系统传递函数模型变量sys,其传递函数的分子和分母多项式可分别由sys.num{1}和sys.den{1}获得。 如在Matlab程序m2-1执行后有 sys_1.num{1}=[1 2 1]; sys_1.den{1}=[1 5 6]; MIMO系统(1/7) (2) MIMO系统 MIMO线性定常连续系统的传递函数阵G(s)可以表示为 其中,Gij(s)=nij(s)/dij(s)描述了第i个输出与第j个输入之间的动态传递关系,nij(s)和dij(s)分别为其分子与分母多项式。 MIMO系统(2/7) 在Matlab中,为建立MIMO线性定常系统的传递函数阵,规定传递函数阵对应的分子多项式输入格式为 num={ num11 num12 … num1r; num21 num22 … num2r; ...... numm1 numm2 … nummr} 其中,numij为Gij(s)的分子多项式的数组表示,其表示方法与前面介绍的SISO系统传递函数的分子多项式表示方法一致; 各numij的排列方法与Matlab矩阵的各元素排列方法一致,但这里用符号“{}”代替矩阵符号“[]”。 MIMO系统(3/7) 传递函数阵对应的分母多项式输入格式与分子的输入格式一致,也排成“{}”表示的多维数组形式。 下面通过1个2?2的传递函数阵的输入方法来演示Matlab建立MIMO传递函数模型的过程。 Matlab问题 试在Matlab中建立如下传递函数阵的Matlab模型 MIMO系统(4/7) Matlab程序m2-2如下 MIMO系统(5/7) Matlab程序m2-2执行结果如下 MIMO系统(6/7) 对已建立好的传递函数模型阵变量sys,传递函数模型阵G(s)的各元素的分子和分母多项式可分别由sys.num{i,j}和sys.den{i,j}获得。 如在Matlab程序执行后有 sys.num{2,1}=[0 0 2 3]; sys.den{2,1}=[1 6 11 6]; 分别表示 的分子和分母多项式。 这里Matlab内部的分子多项式表示[0 0 2 3]是因为要与分母多项式表示为同阶的多项式,由于分子的阶次低,故高次项补0。 MIMO系统(7/7) 在Matlab中,sys.num{i,j}和sy

    展开全文
  • 2.1 函数 matlab之所以强大,就是因为提供大量的函数,你也可以建立自定义函数,方法是:Home->New->function。自定义函数一般保存在工作路径下。函数文件的特征是:扩展名m,内容的第一行以function开头,...
  • MATLAB中被控对象建模的几种方法传递函数模型 首先将分子分母多项式用向量表示,然后利用MATLAB的控制系统工具箱中的tf函数建立传递函数模型,具体如下:函数常用用法见下表:表1.1 tf函数用法还有一些其他的相关...
  • % 建立二元函数g(x,y)=xy I=dblquad(g,0,1,1,2) %求g(x,y)在[0,1][1,2]上的二重积分 I = 0.7500 h=inline'x*exp(y)+z^2'x'y'z; % 建立三元函数 I=triplequad(h,0,1,0,1,0,1) %求h(x,y,z)在[0,1][0,1] [0,1]上的三重...
  • Matlab中函数和脚本的区别

    千次阅读 2017-01-15 15:00:23
    函数:定义输入参数和输出参数的对应关系,方便外部调用,有函数Function...end声明。脚本:一堆命令堆在一起,按照顺序执行,完成某一项任务的文件。...举个简单的例子建立一个myfunction.m,然后在文件写。function
  • 本文内容:数学模型的建立操作环境:matlab2019b(大部分语法和老版本一样,版本不影响使用)1.数学模型的建立(1)传递函数已知 主要函数:tf如键入num=[33.3]; %分子 den=[1 2.2 11.1]; %分母 G=tf(num,den);在m...
  • if语句 循环结构
  • matlab函数子图像的建立,下面的命令将会在同一窗口创建两个子图象,每一个子图象独立地展示不同的图象。
  • matlab中GUI的建立及图像处理的命令函数整理-创建图形用户界面.rar 关于matlab中GUI的建立及图像处理的命令 函数整理
  • Matlab中函数句柄@的作用及介绍

    千次阅读 2019-05-16 10:49:54
    问:f=@(x)acos(x)表示...f=@(x)acos(x) 相当于建立了一个函数文件: % f.m function y=f(x) y=acos(x); 若有下列语句:xsqual=@(x)1/2.(x==-1/2)+1.(x>-1/28&x<1/2)+1.2.*(x==-1/2); 则相当于建立了一个...
  • matlab中S-函数建立与应用

    千次阅读 2014-06-03 11:10:08
    MATLAB提供的模型不能完全满足用户需要时,就可以通过S-函数提供给用户自己编写程序来满足自己要求模型的接口。可以使用MATLAB、C、C++、Ada和Fortran语言编写。  S-函数使用的是一种比较特殊的调用格式,可以...
  • matlab sort函数

    2017-11-18 19:53:11
    而且在MATLAB中实现struct比C中更为方便。 4. 3.1 结构数组的创建 MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。 1. 使用直接引用方式定义结构 与建立数值型数组一样,建立新struct对象不需要...
  • 1.在工具栏的新建选项选择函数建立一个函数M文件。 2.之后会出现编辑器,在编辑器会有如下显示: function [outputArg1,outputArg2] = untitled(inputArg1,inputArg2) %UNTITLED6 此处显示有关此函数的摘要 %...
  • 因此如果在VCMATLAB进行调用将大大减少编程的工作量、保证程序的准确性,并且继承了VC++强大的功能,提高开发效率,本文将介绍了在VC使用MATLAB函数库的具体步骤: 在VC中建立一个 在VC使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 874
精华内容 349
关键字:

matlab中函数建立

matlab 订阅