精华内容
下载资源
问答
  • matlab函数文件
    千次阅读
    2021-04-25 13:30:22

    在matlab中,M文件分为脚本文件和函数文件。如果M文件的第一个可执行语句以function开头,那么这个M文件就是函数文件。

    脚本文件与函数文件的区别

    • 脚本文件只是存储在文件中的 matlab 语句的集合。执行脚本文件时,结果与所有命令直接输入命令窗口时的结果相同。
    • 脚本文件执行完后创建的任何变量都将保留在工作空间中。而函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除。
    • 脚本文件没有输入参数,也不会返回任何结果。

    函数文件的形式

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

    function [outarg1,outarg2,…] = fname(inarg1,inarg2,…)
    % H1 comment line
    % Other comment lines

    end

    语句 function 作为函数开始的标记,并指定函数的名称与输入和输出参数列表。

    • MATLAB中的函数文件名必须以字母开头,可以是字母、下划线、数字的任意组合,但不可以超过31个字符。
    • 输入参数列表在函数名后面的圆括号中,输出参数列表在等号左边的方括号中。(如果只有一个输出参数,则可以删除方括号。)

    函数名应当与文件名一致(保存函数文件时会默认以函数名作为文件名予以保存),如果两者不一致,MATLAB将以文件名为准,以后调用时使用文件名调用该函数。例如,函数名为 My_fun,则该函数应保存在名为 My_fun.m 的文件中。

    H1注释行是紧随函数声明之后的以“%”开头的第一条注释行。其包括大写的函数名和函数功能简要描述,采用 lookfor 命令可在命令行窗口显示H1行的信息。

    函数的调用

    在表达式中调用函数,需要函数名和实参列表。直接在命令窗口中输人函数名,或将其包含在脚本文件或其他函数中来调用函数。调用程序中使用的名称必须与函数名(包括大小写)完全一致。当函数被调用时,第一个实参的值替代第一个形参, 以此类推,其他的实参/形参对。

    执行从函数的顶部开始,并在返回语句、结束语句或函数末尾时结束。由于执行在函数末尾时自动停止,所以在大多数函数中实际上并不需要return语句,且很少使用。

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

    function [W_box, H_box, bdown, MStitch] = Fun_Match(im2, MStitch)
    % 图像匹配
    % 输入参数:
    % im2——待匹配图像
    % MStitch——参数结构
    % 输出参数
    % W_box——宽度信息
    % H_box——高度信息
    % bdown——上下信息
    % MStitch——参数结构
    
    Pwidth = MStitch.Pwidth;
    Pheight = MStitch.Pheight; 
    W_min = MStitch.W_min; 
    W_max = MStitch.W_max;
    H_min = MStitch.H_min; 
    minval = MStitch.minval; 
    im1 = MStitch.im1;
    [Fheight, Fwidth] = size(im2);
    
    hw = waitbar(0, '图像匹配进度:', 'Name', '图像匹配……');
    w_ind = 64; h_ind = 151;
    for w = W_min : W_max
        for h = H_min : Fheight
            imsum = 0; 
            x2 = 1;
            for x1 = Pwidth-w : 5 : Pwidth
                y2 = 1;
                for y1 = Pheight-h+1 : 5 : Pheight
                    [x1, y1] = CheckRC(x1, y1, im1);
                    [x2, y2] = CheckRC(x2, y2, im2);
                    imsum = imsum + abs(im1(y1, x1) - im2(y2, x2));
                    y2 = y2 + 5;
                end
                x2 = x2 + 5;
            end
            if imsum*5*5 < minval*w*h
                minval = imsum*5*5/(w*h);
                w_ind = w;
                h_ind = h;
            end
        end
        rt = 0.5*(w - W_min)/(W_max - W_min);
        waitbar(rt, hw, sprintf('图像匹配进度:%i%%', round(rt*100)));
    end
    W_box = w_ind-1;
    H_box = h_ind+1;
    bdown = 1;
    if H_box < size(im2, 1)
        H_box = size(im2, 1);
    end
    
    for w = W_min : W_max
        for h = H_min : Fheight
            imsum = 0; 
            x2 = 1;
            for x1 = Pwidth-w : 5 : Pwidth
                y1 = 1;
                for y2 = Fheight-h+1 : 5 : Fheight
                    [x1, y1] = CheckRC(x1, y1, im1);
                    [x2, y2] = CheckRC(x2, y2, im2);
                    imsum = imsum + abs(im1(y1, x1) - im2(y2, x2));
                    y1 = y1 + 5;
                end
                x2 = x2 + 5;
            end
            if imsum*5*5 < minval*w*h
                minval = imsum*5*5/(w*h);
                w_ind = w;
                h_ind = h;
                bdown = 0;
            end
        end
        rt = 0.5 + 0.5*(w - W_min)/(W_max - W_min);
        waitbar(rt, hw, sprintf('图像匹配进度:%i%%', round(rt*100)));
    end
    MStitch.minval = minval;
    delete(hw);
    
    更多相关内容
  • Matlab函数文件

    千次阅读 2021-10-05 23:48:56
    m文件不受enter键影响 M文件可以根据调用方式分为不同两类: ...M文件的第一个可执行以function开始,便是函数文件,每一个函数文件定义一个函数。 function[output,output2]=function-name(input,input2) ...

    m文件不受enter键影响

    M文件可以根据调用方式分为不同两类:

    命令文件(Script File):
    自动重复执行的一组Matlab命令和函数组合,不需输出输入参数。也称脚本文件。

    函数文件(Function File):
    M文件的第一个可执行以function开始,便是函数文件,每一个函数文件定义一个函数。

    function[output,output2]=function-name(input,input2)
    

    分别建立命令文件和函数文件,将华氏温度f转变为设置温度C

    clear;
    ![请添加图片描述](https://img-blog.csdnimg.cn/0bf7a83f35a8445a94150ee3ef58cfd1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQ2hhcml0eV9zdA==,size_20,color_FFFFFF,t_70,g_se,x_16)
    
    

    命令窗口输入:

    >>wendu
    Input Fahrenheit temperature :73
    c =
    22.7778
    

    请添加图片描述
    函数文件:以文件名wendu2.m存盘。

    function w = wendu2(x)
    w=5*(x-32)/9;
    

    函数只能被调用,不能直接运行。
    【因变量】=函数名(输入自变量)

    请添加图片描述

    两类M文件的区别和联系

    区别:
    纯脚本文件就是一个计算模块,保存文件名时候,可以在满足命名规则的基础上任意命名。
    函数文件必须以关键字function开头,一般需要传参数和返回值,在保存时必须以函数名作为文件名保存。
    联系:
    纯脚本文件与函数文件可以相互转换

    例 设有n个数:x1,x2,x3,…,xn由这n个数生成的范德蒙德矩阵如下,请结合点运算,编写一个由这n个数生成的n阶范德蒙德矩阵

    请添加图片描述
    1)新建一个M文件
    2)代码如下

    clear all
    clc%输入clc(点击回车)清除命令行窗口中的数据。
    x=[1 2 3 4 5];
    n=length(x);%x的维数,也就是5
    for i=1:n
    	d(i,:)=x.^(i-1);%d(i,:)表示d的第i行,所有列都可以取到
    end
    d%显示d这个矩阵
    

    请添加图片描述
    例 把上面的例子写为一个函数文件

    function fdmd = fandemeng(x)
    %参数x:范德蒙德矩阵的生成数
    %返回值fdmd:由给出的生成数构成的范德蒙德矩阵
    n=length(x);
    for i = 1:n
    	d(i,:) = x.^(i-1);
    end;
    fdmd = d;
    

    请添加图片描述
    把上面M文件另存为fandemeng.m(文件名必须与函数名一致)再编写一个函数调用即可。
    请添加图片描述

    展开全文
  • MATLAB函数库,里面对函数内容都做了一定的解释,函数库内容比较多。
  • MATLAB函数文件的使用

    千次阅读 2020-07-07 11:12:19
    MATLAB函数文件的使用 目录MATLAB函数文件的使用1.函数文件基本结构:(1)文件名(2)注释说明部分(3)函数体语句2.函数的调用2.1函数的递归调用3.函数参数的可调性4.局部变量和全局变量4.1局部变量4.2全局变量 1....

    MATLAB函数文件的使用

    1.函数文件基本结构:

    **function 输出形参表=函数名(输入形参表)
    注释说明部分
    函数体语句**
    
    注:
    	1.function在开头第一行作为引导,表明这是一个函数文件。
    	2.当输出形参的个数大于一个时,输出形参表要用方括号括起来,即输出为向量。
    

    (1)文件名

    一般来说,文件名是函数名加上.m后缀组成。不过文件名也可跟函数名不同,当函数名和文件名不同时,MATLAB会忽略函数名,确认文件名,此时在调用的时候应使用函数文件名。最好是函数文件名和函数名统一

    (2)注释说明部分

    注释是为了更好的对函数文件的内容进行管理和更新,注释中主要是3部分,函数名称和功能函数参数信息和调用信息函数文件编写人员和日期
    ①紧随函数文件引导行之后以%开头的第一注释行。这一行一般包括大写的函数文件名函数功能简要描述,供lookfor关键词查询和help在线帮助时使用。
    ②第一注释行及之后连续的注释行。通常包括函数输入/输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。
    ③与在线帮助文本相隔一空行的注释行。包括函数文件编写和修改的信息,如作者、修改日期、版本等内容,用于软件档案管理。

    例如:计算圆周长与面积函数

    function [s,c]=circle(r)
    %CIRCLE    功能:计算圆的面积和周长
    %r  		圆半径
    %s		圆面积
    %c		圆周长
    %调用格式: [s,c]=circle(r)
    
    %2020年7月7号   某某编	1.0版本
    
    s=pi*r*r;
    c=2*pi*r;
    

    (3)函数体语句

    函数体语句跟命令行输入差不多,冒号作为终止,return有无皆可。

    2.函数的调用

    函数调用的一般格式是:
    [输出实参表]=函数名(输入实参表)

    %使用上面计算圆周长和面积的函数
    [s,c]=circle(5)
    
    %输出
    s =
    
       78.5398
    
    c =
    
       31.4159
    

    各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。
    函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。

    2.1函数的递归调用

    在MATLAB中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。一个函数调用它自身称为函数的递归调用。
    例:阶乘计算
    在这里插入图片描述

    function f=factor(n)
    %FACTOR		功能:阶乘计算
    %f		阶乘计算输出值
    %n		阶乘数
    %调用格式: f=factor(n)
    
    %2020年7月7号   某某编	1.0版本
    
    if n<=1
       f=1;
    else
       f=factor(n-1)*n; 		%递归调用求(n-1)!
    end
    
    >> f=factor(20)
    
    f =
    
       2.4329e+18
    

    3.函数参数的可调性

    在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数
    只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理。
    例:

    function out=getmath(x,y,z)
    %TYPE  功能:根据输入参数个数的不同,进行不同的计算
    %out   计算结果输出
    %x    第一个形参
    %y    第二个形参
    %z    第三个形参
    %调用格式   out=type(x,y,z)
    
    %2020.7.7  某某编写  
    
    if nargin==1
        out=x;
    elseif nargin==2
        out=x/y;
    elseif nargin==3
        out=x*y*z;
    end
    
    >> out=getmath(6)			%输入一个实参时
    
    out =
    
         6
    
    >> out=getmath(5,6)			%输入两个实参时
    
    out =
    
        0.8333
    
    >> out=getmath(5,6,7)			%输入三个实参时
    
    out =
    
       210
    

    4.局部变量和全局变量

    4.1局部变量

    函数文件中的变量是局部变量,与其他函数文件及工作空间相互隔离

    4.2全局变量

    全局变量的作用域是是工作空间,先在命令行窗口声明。若多个函数文件中都定义了相同的全局变量,则这个全局变量在这些函数中就是共用的,所有函数都能对它进行存取和修改。因此,定义全局变量是函数间传递信息的一种手段。

    全局变量使用格式
    global 变量名
    例如

    function factor(x,y)				
    %FACTOR    功能 例子测试
    %x		形参1
    %y		形参2
    %调用方式  factor(x,y)
    
    %2020.7.7
    
    global ONEDATA				%全局变量
    ONEDATA=x*ONEDATA+y*ONEDATA
    
    function ten(x)
    %TEN 		功能:乘10
    %x		输入目标数字
    %调用格式   ten(x)
    
    %2020.7.7
    
    global ONEDATA
    ONEDATA=10*x
    
    >> global ONEDATA
    >> ten(5)					%调用函数改变全局变量
    
    ONEDATA =
    
        50
    >> factor(1,2)				%调用函数改变全局变量
    
    ONEDATA =
    
       150
    

    但是,对于全局变量还会不怎么提倡使用
    原因:
    1.破坏函数对变量的封装
    2.降低程序的可读性

    展开全文
  • 3.6 matlab函数文件的定义与调用

    千次阅读 2021-12-06 15:32:13
    1、函数文件的基本结构 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 当有多个形参时,形参之间用逗号分隔,组成形参表。当输出形参多于一个时,应该用方括号括起来,构成一个输出矩阵。 函数...

    1、函数文件的基本结构

    function 输出形参表=函数名(输入形参表)
    注释说明部分
    函数体语句

    当有多个形参时,形参之间用逗号分隔,组成形参表。当输出形参多于一个时,应该用方括号括起来,构成一个输出矩阵。

    函数文件名和函数名:
    (1)函数文件名通常由函数名再加上扩展名.m组成,函数文件名与函数名也可以不相同。
    (2)return语句表示结束函数的执行。

    函数调用
    调用格式:
    [输出实参表=函数名(输入实参表)

    在调用函数时,函数输入输出参数称为实际参数,简称实参。

    例1:编写函数文件,求半径为r的圆的面积和周长。

    function [S,C] = circle(r)
    S = pi*r*r;  %圆的面积
    C = 2*pi*r;  %圆的周长
    
    %在命令行窗口调用函数
    >> [S,C] = circle(10)
    
    %输出结果
    S =
      314.1593
      
    C =
       62.831
    

    2、匿名函数
    基本格式:

    (1)函数句柄变量=@(匿名函数输入参数)匿名函数表达式
    其中@为函数句柄的运算符

    >> f = @(x,y)x^2+y^2
    
    f =
    
      包含以下值的 function_handle:
    
        @(x,y)x^2+y^2
    
    %输出结果
    >> f(1,2)
    >
    ans =
         5
    

    (2)函数句柄变量=@函数名
    函数名可为:内部函数或自定义函数

    >> f = @sind
    
    f =
    
      包含以下值的 function_handle:
    
        @sind
    
    >> f(30)
    
    ans =
        0.5000
    

    在这里插入图片描述

    %用匿名函数定义f
    f = @(n)n+10*log(n*n+5);
    y = f(40)/[f(30)+f(20)]
    
    %输出结果
    y =
        0.6390
    
    
    %用函数文件定义函数f
    function y = f2(n)
    y = 0;
    for i=1:n
        y = y + i*(i+1);
    end
    
    %在命令行窗口调用f2函数,其输出结果
    >> f2(40)/[f2(30)+f2(20)]
    
    ans =
        1.7662
    
    展开全文
  • matlab的M文件中,M文件可分为脚本文件(MATLABscripts)和函数文件(MATLABfunctions)。 M命令文件 M命令文件又称为M脚本文件,实际上是一串命令行文件的简单叠加,它的执行方式很简单,用户只需在MATLAB的系统...
  • 【Matlab】如何规范地编写一个MATLAB函数文件

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

    千次阅读 2018-09-10 15:44:56
    function [输出形参表]=函数名(输入形参表) %注释 函数体语句 factorial(N)计算阶乘 global 变量名 将变量名定义为几个函数共享的全局变量 全局变量使用前先定义。一般将全局变量的定义放在首行。...
  • matlab函数文件位置

    千次阅读 2015-01-16 16:59:25
     C:\Program Files\MATLAB\R2013a\toolbox\matlab\datafun
  • 阶乘函数用于matlab仿真
  • 1函数文件+调用命令文件需单独定义一个自定义函数的M文件; ?2函数文件+子函数定义一个具有多个自定义函数的M文件 ?3Inline:无需M文件直接定义 ?4Syms+subs?无需M文件,直接定义 ?5字符串+subs无需M文件,直接定义. 6...
  • MATLAB编写函数文件的实例

    千次阅读 2021-04-27 11:18:14
    MATLAB编写函数文件的实例1.在M文件编辑器中,编写“ssort”函数的代码函数代码如下:function out=ssort(a)%ssort程序代码按照升序排列数据%Define variables:%a input array to sort%ii index variable%nvals ...
  • %% 在函数文件中使用全局变量 % 方法一:使用全局变量关键字global % 在函数头部将被调用的变量定义为全局变量 global X % 在其它文件需要使用变量X的时候,也在头部表明X为全局变量 global X % 方法二:将被调用...
  • 采用matlab软件中的m文件实现,分段函数示例, 文档中有相应的注释,方便大家学习。
  • 目录一、建立文件二、函数调用二、函数句柄三、匿名函数想查找相关内容也可在页面按ctrl+F搜索文字一、建立文件新建脚本,保存后可运行,后缀为.m 二、函数调用创建ffib.m文件,编写求Fibonacci数列的函数function...
  • MATLAB函数文件是指可以定义输入参数和返回输出变量的M文件。本文介绍通过建立函数文件(Function)来求解一元二次方程的方法。工具/材料MATLABFunction操作方法01第一,本文要求解的一元二次方程如下图,共三个。02第...
  • MATLAB—M函数文件

    万次阅读 多人点赞 2020-04-19 13:38:22
    首先,要了解脚本文件和函数文件的区别,在MATLAB中编写的程序文件称为M文件,M文件分为脚本文件和函数文件俩种。 1.脚本文件和函数文件的区别 脚本文件:没有输入参数和输出参数,运行脚本文件实际上就是顺序执行...
  • MATLAB实验五函数文件.doc

    千次阅读 2021-04-18 07:58:02
    MATLAB实验报告学院:光电学院班级:073-1姓名:刘颖学号:200713503117实验五 函数文件1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。程序设计:function [e ln s c]=...
  • MATLAB函数文件的基本结构

    千次阅读 2020-09-09 16:24:15
    函数的基本格式 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 当有多个形参时,形参之间用逗号分隔,组成形参表。当输出形参多于一个时,应该用方括号括起来,构成一个输出矩阵。 函数文件名...
  • matlab中关于函数文件和脚本文件使用实例如下:一般来说分两种情况:如果首行(不包括注释)不是以function开头的,这种叫做脚本或者命令。如果首行(不包括注释)以function开头,这种叫做函数。对于脚本,可以直接复制...
  • matlab饱和函数m文件

    2018-06-04 16:39:50
    简单的饱和函数m文件,在matlab下可以调用,实现matlab下运行饱和函数的作用
  • matlab怎么写函数

    万次阅读 2021-04-18 10:15:41
    1.matlab怎么写函数文件~首先打开电脑上的“matlab”软件,主界面如下图所示,可以看到命令行窗口,点击箭头处的“新建”,创建一个函数文件。2、接着点击箭头处的“脚本”按钮,新建一个matlab脚本文件,文件的后缀...
  • .m文件,就是ftx功能函数的调用,后面不知道怎么形容。
  • Matlab-函数编写规则

    千次阅读 2022-04-13 11:22:14
    Matlab函数编写需要注意的是.m的文件名需要与内部的函数名保持一致,否则会报出未定义函数或变量的错误 1 笛卡尔坐标系转换成极坐标 函数编写: rect2polar.m:笛卡尔坐标系转换成极坐标 %% %笛卡尔坐标系...
  • Matlab中在文件中创建函数

    千次阅读 2020-12-14 18:22:51
    文件中创建函数 函数定义语法 函数文件的内容 End 语句 在文件中创建函数 脚本和函数都允许通过将命令序列存储在程序文件中来重用它们。脚本是最简单的程序类型,因为它们存储命令的方式与您在命令行中键入...
  • matlab 编写m文件函数

    千次阅读 2021-04-18 09:32:00
    内容导航:Q1:matlab中一个m文件怎么调用另一个m文件函数将两个m文件放在同一目录,在第一个m文件里面直接输入第二个m文件函数名称即可 。[输出1,输出2,..]=函数名称(变量1,变量2,...)Q2:利用matlab M文件...
  • matlab文件函数使用总结

    千次阅读 2017-10-26 15:07:08
    % 此函数的用法为 % [FileName,PathName,FilterIndex] =uigetfile(FilterSpec,DialogTitle,DefaultName) % FileName:返回的文件名 % PathName:返回的文件的路径名 % FilterIndex:选择的文件类型 % ...
  • 在comsol中计算石墨烯条带的示例,包含comsol文件以及对应的matlab函数
  • 但是调用函数的程序本身必须定义成一个函数。比如:被zhidao调用的函数是fun1,调用它的函数是callfun1。那么你要新建一个callfun1.m,里面输入: function callfun1 %不需要输入和输出内参数,直接点运行即可执行 a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,525
精华内容 28,610
关键字:

matlab函数文件

友情链接: rwupp685.rar