精华内容
下载资源
问答
  • 在matlab的M文件中,M文件可分为脚本文件(MATLABscripts)和函数文件(MATLABfunctions)。 M命令文件 M命令文件又称为M脚本文件,实际上是一串命令行文件的简单叠加,它的执行方式很简单,用户只需在MATLAB的系统...

    在matlab的M文件中,M文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。

    M命令文件

    M命令文件又称为M脚本文件,实际上是一串命令行文件的简单叠加,它的执行方式很简单,用户只需在MATLAB的系统提示符“>>”后面键人某个命令文件的文件名,MATLAB就会自动按流程顺序执行该命令文件中的各条语句,就像用户在命令窗口中逐行输入并运行这些命令一样。

    M函数文件

          M函数文件在MATLAB中的应用十分广泛,基本上系统所提供的绝大多数标准库函数都是由函数文件实现的。用户也可以根据需要编写自己的函数文件,并像MATLAB本身提供的库函数-样使用,这就大大的扩展了MATLAB的计算能力。如果用户针对某-类特殊问题创建了一批M函数文件,则甚至可形成适合自己领域需要的新工具箱。

    内部所使用过的变量也仅在本文件内部有效,不会影响其他程序文件。

    区别:

    脚本文件

    1.多条命令的综合体 

    2.没有输入、输出变量 

    3.使用MATLAB基本工作空间 

    4.没有函数声明行 

    函数文件

    1.常用于扩充MATLAB函数库

    2.可以包含输入、输出变量

    3.运算中生成的所有变量都存放在函数工作空间

    4.包含函数声明行

    举例说明:

    脚本文件:

    设单位质点在水平面内做直线运动,初速度v在t=0时刻为v0,已知阻力与速度成正比(比例系数为1),问t为多少时此质点的速度为v0/3?

    >> syms v v0 t
    >> v = dsolve('Dv + v = 0 ','v(0) = v0')
     
    v =
     
    v0*exp(-t)
     
    >> t = solve(v0/3 - v,'t')
     
    t =
     
    log(3)
     
    >> 

    工作空间:

     

    函数文件:

    编写一个自动判定成绩等级的函数文件,当输入的成绩在[0,60)之间时返回0,[60,70)之间返回1,[70,80)之间返回2,[80,90)之间返回3,[90,100]之间返回4。

    a=input('请输入成绩=');
    switch fix(a/10)
        case {0,1,2,3,4,5}
            f=0;
        case 6
            f=1;
        case 7
            f=2;
        case 8
            f=3;
        case {9,10}
            f=4;
    end
    f

    工作空间:

     

    展开全文
  • 【Matlab】如何规范地编写一个MATLAB函数文件

    万次阅读 多人点赞 2018-09-28 18:11:49
    在matlab中,M文件分为脚本文件和函数文件。如果M文件的第一个可执行语句以function开头,那这个M文件就是函数文件函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后,这些内部变量将...

    在matlab中,M文件分为脚本文件和函数文件。如果M文件的第一个可执行语句以function开头,那这个M文件就是函数文件。函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除。

    本文介绍如何规范地编写一个函数文件。

    通常,函数文件由函数声明行H1行在线帮助文本区编写和修改记录函数主体等几个部分组成。格式如下:

    function 输出形参表 = 函数名(输入形参表)

    在线帮助文本区,其中第一行为H1行

    编写和修改记录

    函数主体


    函数声明行

    1. 由关键字function引导,指明这是一个函数文件,并定义函数名、输入参数和输出参数。
    2. 函数名应当与文件名一致(保存函数文件时会默认以函数名作为文件名予以保存),如果两者不一致,MATLAB将以文件名为准,以后调用时使用文件名调用该函数。
    3. 在脚本文件中编写函数时,需以end结尾;独立的函数文件不需以end结尾。
    4. MATLAB中的函数文件名必须以字母开头,可以是字母、下划线、数字的任意组合,但不可以超过31个字符。

    H1行

    1. 紧随函数声明行之后的以“%”开头的第一注释行。
    2. H1行包括大写的函数名和函数功能简要描述,采用lookfor命令可在命令行窗口显示H1行的信息。
    3. 建议在编写H1注释行时,尽量采用英文表述,这是为了之后的使用过程中关键词检索的方便。

    在线帮助文本区

    1. 包括H1行以及H1行之后的连续的以“%”开头的注释行。
    2. 通常包括函数输入变量和输出变量的含义以及调用说明。
    3. 采用help命令可在命令行窗口显示在线帮助文本区的信息。

    编写和修改记录

    1. 与在线帮助文本区以一个空行相隔。
    2. 该行以“%”开头,记录了编写及修改函数文件的作者、日期、版本等内容,以方便后来的使用查询或修改。

    函数主体

    1. 应与编写和修改记录以一个空行相隔。
    2. 这部分内容包括了所有实现该函数文件功能的MATLAB指令。

    例:完整的函数文件示范。

    function spir_len = spirallength(d, n, lcolor)
    % SPIRALLENGTH plot a circle of radius as r in the provided color and calculate its area 
    % 输入参数: 
    %   d: 螺旋的旋距
    %   n: 螺旋的圈数
    %   lcolor:画图线的颜色
    % 输出参数:
    %   spir_len:螺旋的周长
    % 调用说明:
    %   spirallength(d,n):以参数d,n画螺旋线,螺旋线默认为蓝色
    %   spirallength(d,n,lcolor):以参数d,n,lcolor画螺旋线
    %   spir_len = spirallength(d,n):计算螺旋线的周长,并以蓝色填充螺旋线
    %   spir_len = spirallength(d,n,lcolor):计算螺旋线的周长,并以lcolor颜色填充螺旋线
    
    % 版本号V1.0,编写于1999年9月9号,修改于1999年9月10号,作者:亚索
    
    if nargin > 3
        error('输入变量过多!');
    elseif nargin == 2
        lcolor = 'b'; % 默认情况下为蓝色
    end
    
    j = sqrt(-1); 
    phi = 0 : pi/1000 : n*2*pi; 
    amp = 0 : d/2000 : n*d; 
    spir = amp .* exp(j*phi); 
    
    if nargout == 1
        spir_len = sum(abs(diff(spir))); 
        fill(real(spir), imag(spir), lcolor); 
    elseif nargout == 0
        plot(spir, lcolor); 
    else
        error('输出变量过多!'); 
    end
    
    axis('square'); 

    在命令行窗口中输入:

    spirallength(0.25,4)

    输出结果如图:

    在命令行窗口输入:

    spir_len = spirallength(0.25,4)

    输出的结果不仅包括上图,而且还在命令行窗口显示spir_len=12.6542。


    函数参数指令集

    • nargin:表示一个变量,指定调用函数所带参数的个数
    • nargout:表示一个变量,指定调用函数所返回的参数的个数

    本文完。

    展开全文
  • M函数文件: 函数文件的第一行必须包含关键字“function”,表示m文件是函数文件,其基本格式如下: function [输出参数形式] = 函数名 (函数形参表) 注释说明语句段 程序语句段 其中: 输出形参表:用方...

    M函数文件:

    函数文件的第一行必须包含关键字“function”,表示m文件是函数文件,其基本格式如下:

    function [输出参数形式] = 函数名 (函数形参表)
    
    注释说明语句段
    
    程序语句段

    其中:

    输出形参表:用方括号括起来的输出形参表是函数经过运算后所得到的结果变量列表

    函数名:是要定义的函数名字,一般由字母,数字和下划线组成,其命名规则和变量名命名规则相同

    输入形参表:是函数输入参数列表,列表中参数与参数之间用逗号来分割,是函数从外界接受数据的接口

    运用示例:

    编写一个求n!的阶乘函数

    分析:阶乘n!的数学定义为:

    n!= n*(n-1)*(n-2)*...*2*1;且规定0!= 1;

    程序:

    function p = fac(n)
    
    %fac函数用于计算n!
    %对应于参数n的实参应该是非负整数
    
    if n == 0
         p = 1;
    else 
         p = 1;
         i = 1;
         while i<= n 
               p = p*i;
               i = i+1;
         end
    end 

    函数的调用:

    编写好函数文件后,就可以调用该函数来进行计算了,其方法与调用系统标准函数库文件没有本质区别

    调用格式为:

    [输出实参列表]=[输入实参列表]

    要注意的是,在函数调用时会将输出实参依次传递给函数的形参,因此,输入实参必须与函数定义的形参中各个参数出现的次序必须完全一致,否则会出错。

    比如,现在调用上面编好的函数:

    >>fac(7)
      ans = 
          5040

    当然,对于已编好的阶乘函数,也可以像系统提供的标准函数库一样,在其他的计算文件中调用。

    如:求1!+2!+3!+...+7!

    sum = 0;
    for i = 1 : 7;
          sum = sum + fac(i);
    end
    sum

    运用M函数文件示例:

    采用递归法求 n!

    分析:由阶乘的概念可以写出其递归定义:

    0!= 1

    n! = n*(n-1)

    程序:

    function p = factorial(n)
    
    %factorial函数用于计算n!
    %对应于参数n的实参应该是非负整数
    
    if n == 0
         p = 1;
    else 
         p = n*factorial(n-1)
    end 

    输出示例:

    >>factorial(7)
      ans = 
          5040

     

     

     

     

    展开全文
  • matlab中的脚本文件和函数文件

    千次阅读 2019-09-17 13:43:37
    M文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。脚本文件是包含多条MATLAB命令的文件;函数文件可以包含输入变量,并把结果传送给输出变量。 两者的简要区别如下: 脚本文件 1.多条命令的...

    M文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。脚本文件是包含多条MATLAB命令的文件;函数文件可以包含输入变量,并把结果传送给输出变量。

    两者的简要区别如下:
    脚本文件 
    1.多条命令的综合体 

    2.没有输入、输出变量 

    3.使用MATLAB基本工作空间 

    4.没有函数声明行 

    函数文件

    1.常用于扩充MATLAB函数库

    2.可以包含输入、输出变量

    3.运算中生成的所有变量都存放在函数工作空间

    4.包含函数声明行

    脚本文件可以理解为简单的M文件,脚本文件中的变量都是全局变量。函数文件是在脚本文件的基础之上多添加了一行函数定义行,其代码组织结构和调用方式与对应的脚本文件截然不同。函数文件是以函数声明行“function...”作为开始的,其实质就是用户往MATLAB函数库里边添加了子函数,函数文件中的变量都是局部变量,除非使用了特别声明。函数运行完毕之后,其定义的变量将从工作区间中清除。而脚本文件只是将一系列相关的代码结合封装,没有输入参数和输出参数,即不自带参数,也不一定要返回结果。而多数函数文件一般都有输入和输出变量,并见有返回结果。

    函数的语法:

    function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)
    例子:
    下面的函数名为mymax,文件名为mymax.m(必须相同)。它需要五个数字作为参数并返回最大的数字。

    创建函数文件,名为mymax.m 并输入下面的代码:
    function max = mymax(n1, n2, n3, n4, n5)
    %This function calculates the maximum of the
    % five numbers given as input
    max =  n1;
    if(n2 > max)
        max = n2;
    end
    if(n3 > max)
       max = n3;
    end
    if(n4 > max)
        max = n4;
    end
    if(n5 > max)
        max = n5;
    end
    说明:
    一个函数的第一行以 function关键字开始。它给出了函数的名称和参数的顺序。在我们的例子中,mymax 函数有5个输入参数和一个输出参数。
    可以调用该函数为:
    mymax(34, 78, 89, 23, 11)
    MATLAB将执行上面的语句,并返回以下结果:
    ans =
        89


    ####有关匿名函数和全局变量的总结:####
    1.匿名函数:
    一个匿名的函数就像是在传统的编程语言,在一个单一的 MATLAB 语句定义一个内联函数。它由一个单一的 MATLAB表达式和任意数量的输入和输出参数。
    可以定义一个匿名函数在MATLAB命令行或在一个函数或脚本。
    这种方式,可以创建简单的函数,而不必为他们创建一个文件。

    创建一个匿名函数表达式的语法:
    f = @(arglist)expression

    例子:
    在这个例子中,我们将编写一个匿名函数名为 power,这将需要两个数字作为输入并返回第二个数字到第一个数字次幂。

    创建一个脚本文件,并键入下面的代码:
     
     
    power = @(x, n) x.^n;
    result1 = power(7, 3)
    result2 = power(49, 0.5)
    result3 = power(10, -10)
    result4 = power (4.5, 1.5)

    当您运行该文件时,它会显示:
    result1 =
       343
    result2 =
         7
    result3 =
       1.0000e-10
    result4 =
        9.5459

    ******************
    2.全局变量:
    % 全局变量可以共享由一个以上的函数,需要将变量声明为全局在所有的函数可使用。
    % 全局声明必须出现在变量中实际上是使用功能。使用大写字母为全局变量的名称以区别于其他变量。
    创建一个函数文件名为average.m和输入下面的代码:
    function avg = average(nums)
    global TOTAL
    avg = sum(nums)/TOTAL;
    end

    创建一个脚本文件,并键入下面的代码:
    global TOTAL;
    TOTAL = 10;
    n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
    av = average(n)

    运行结果:
    av=35.5000

    展开全文
  • MATLAB—M函数文件

    千次阅读 2020-04-19 13:38:22
    脚本文件和函数文件的区别二.M函数文件1.创建方法2.文件形式2.函数形参及注释3.函数的调用4.函数变量5.主函数、子函数三.函数句柄 一.M文件 首先,要了解脚本文件和函数文件的区别,在MATLAB中编写的程序文件称为M...
  • matlab脚本文件和函数文件

    万次阅读 2015-12-21 12:44:13
    M文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。脚本文件是包含多条MATLAB命令的文件;函数文件可以包含输入变量,并把结果传送给输出变量。 两者的简要区别如下: 脚本文件  1.多...
  • matlab——命令文件和函数文件

    千次阅读 2019-01-16 22:40:40
    一、M文件的分类 1、M文件分为两类: 命令文件(Script File) ...(2)命令文件对MATLAB工作空间中的变量进行 操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部...
  • matlab初学者_脚本文件调用函数文件

    千次阅读 2019-09-29 21:14:43
     matlab里面有两种文件,一种是脚本文件,一种是函数文件,为了模块化程序,我们需要把专门的功能写成一个函数封装到某个函数文件里面。 那么来看如何在脚本文件里调用函数文件中的函数。 注意点:  注意相应...
  • MATLAB编写函数文件的实例

    千次阅读 2019-04-06 10:51:07
    MATLAB编写函数文件的实例 1.在M文件编辑器中,编写“ssort”函数的代码 函数代码如下: function out=ssort(a) %ssort程序代码按照升序排列数据 %Define variables: %a input array to sort %ii index variable %...
  • 创建函数的两种方式 (1)m文件 (2)匿名函数 按照书本的步骤进行的 (1) 下面是我的function文件 function y = ellipse(x) y = sqrt(9-x^2); 并保存名字为‘ellipse’的m文件里面 下面是命令窗口运行的 原...
  • shell从函数文件中调用函数

    千次阅读 2014-06-23 11:06:33
    shell中函数有三种调用方式,一种是在文件前面定义函数,然后在下面直接调用;一种是通过载入shell,在shell中直接调用;第三种是将函数写入文件,然后在其他shell中调用函数。 这里写一下关于第三种方法的例子: ...
  • matlab中关于函数文件和脚本文件使用实例如下: 一般来说分两种情况: 如果首行(不包括注释)不是以function开头的,这种叫做脚本或者命令。 如果首行(不包括注释)以function开头,这种叫做函数。 对于脚本,可以...
  • Matlab创建文件、function文件函数调用

    万次阅读 多人点赞 2019-07-08 15:38:08
    一、建立文件 二、函数调用 二、函数句柄 三、匿名函数 想查找相关内容也可在页面按ctrl+F搜索文字 一、建立文件 新建脚本,保存后可运行,后缀为.m 二、函数调用 创建ffib.m文件,编写求Fibonacci数列的...
  • matlab中脚本文件和函数文件

    千次阅读 2013-01-17 14:52:03
    函数文件---定义输出参数和输入参数的对应关系(函数关系),以方便在外部调用,回答“WHAT?” MATLAB中有一种文件叫M文件,他就是一系列代码组成的一个扩展名为.m的文件,虽然M文件是简单的ASCII型的文本文件,...
  • HDevelop函数文件,后缀名:.hdvp 库函数,后缀名:.hdpl 本地程序函数 将可以实现某一个功能的一系列算子打包成一个函数,其作用域只是当前程序,不可被其它程序使用,该函数称为本地程序函数。当程序过于...
  • matlab脚本文件和函数文件的区别

    千次阅读 2019-05-28 20:34:36
    1.脚本文件(myScript) mynumber= input(‘Enter a number:’) %UNTITLED3 此处显示有关此函数的摘要 % 此处显示详细说明 switch mynumber case -1 disp=’负1′; case 0 disp=’0′; case 1 disp=’正1′; ...
  • C语言文件读写函数总结

    千次阅读 多人点赞 2018-04-30 23:51:59
    1、字符写入文件函数 fputc 2、从文件中读取字符 fgetc 二、字符串的读写 1、字符串写入文件函数 fputs 2、从文件中读取字符 fgets 三、块数据读写 1、向文件中写入块数据fwrite 2、从文件中读取块数据fread ...
  • M文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。 脚本文件  1.多条命令的综合体 2.没有输入、输出变量 3.使用MATLAB基本工作空间  4.没有函数声明行  函数文件 1.常用于扩充...
  • 文件操作:fseek函数和ftell函数

    千次阅读 2015-06-06 16:05:00
    函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败则不改变stream指向的位置,函数返回一个非0值。 超出文件末尾位置...
  • %% 在函数文件中使用全局变量 % 方法一:使用全局变量关键字global % 在函数头部将被调用的变量定义为全局变量 global X % 在其它文件需要使用变量X的时候,也在头部表明X为全局变量 global X % 方法二:将被调用...
  • open函数打开文件方式

    万次阅读 2021-06-01 17:16:52
    r: 以只读方式打开文件文件的指针将会放在文件的开头。这是**默认模式**。 rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 r+: 打开一个文件用于读写。文件指针将会放在文件...
  • C语言文件操作函数大全

    万次阅读 多人点赞 2018-01-19 20:35:35
    C语言文件操作函数大全 2018-1-19  13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制文件 13.2文件指针 定义文件类型指针变量的一般...
  • 创建硬链接的函数: 相关函数:symlink, unlink 头文件:#include &...函数说明:link函数中oldpath指定已经存在文件,newpath指定的名称建立一个新的连接(硬链接),若是newpath指定的文件已存在则不会...
  • 一个工程只能有一个main函数,如果每次都从头新建应用程序,比较繁琐,多个main函数文件怎样在VisualStudio里快速运行起来? 这里是用Visual Studio2015展示。 解决方法: 第一次新建项目时勾选创建解决方案...
  • 函数一般用于打开文件,和file_get_contents()函数的作用差不多。一、fopen()函数1、fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。打开成功的话,会返回一个资源。2、fopen(filename,mode,...
  • 很多人拿到别人的m文件,有些函数文件摁F5可以直接运行,有的不行,这是为什么呢?恐怕对matlab的运行机理不大清楚。 关于matlab的函数定义以及代码运行机制,可以参考我的这篇文matlab的函数定义 。 运行的方式...
  • 相关函数:fopen, fwrite, fseek, fscanf 头文件:#include 定义函数:size_t fread...函数说明:fread()用来从文件流中读取数据.  参数stream 为已打开的文件指针, 参数ptr 指向欲存放读取进来的数据空间,
  • 调用函数: A.py文件: def add(x,y): print('和为:%d'%(x+y)) B.py文件: import A A.add(1,2) 或 from A import add add(1,2) 调用类: A.py文件: class A: def __init__(self,xx,yy): self.x=
  • 3.5 close函数-关闭文件

    千次阅读 2013-11-01 13:58:02
    close函数用于关闭一个已经打开的文件函数原型如下: #include int close(int filedes); 返回值:若成功则返回0,出错则返回-1 参数:filedes是文件标识符,是通过open函数获得的文件标识符。 说明: 当一个...
  • jsp文件中导入js文件,无法执行js文件里的函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,225,924
精华内容 1,290,369
关键字:

怎么建立函数文件