在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_maxfor h = H_min : Fheightimsum = 0; x2 = 1;for x1 = Pwidth-w : 5 : Pwidthy2 = 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;endx2 = x2 + 5;endif imsum*5*5 < minval*w*hminval = imsum*5*5/(w*h);w_ind = w;h_ind = h;endendrt = 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);
endfor w = W_min : W_maxfor h = H_min : Fheightimsum = 0; x2 = 1;for x1 = Pwidth-w : 5 : Pwidthy1 = 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;endx2 = x2 + 5;endif imsum*5*5 < minval*w*hminval = imsum*5*5/(w*h);w_ind = w;h_ind = h;bdown = 0;endendrt = 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 函数文件简介相关推荐

  1. 数学建模与MATLAB计算之005.MATLAB函数文件

    005.MATLAB函数文件 文章目录 005.MATLAB函数文件 一.M文件 二.举例 三.区别与联系 (一)区别 (二)联系 一.M文件 所谓M文件就是由MATLAB语言编写的可在MATLAB语 ...

  2. matlab复数向极坐标转换_[matlab 极坐标]利用MATLAB函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。谁能写出函数和调用语句?...

    利用MATLAB函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换.谁能写出函数和调用语句? 问题补充:利用MATLAB函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换.谁能写出 ...

  3. matlab解一元二次方程 函数,MATLAB函数文件(Function)和求解一元二次方程 来研究下吧...

    MATLAB函数文件是指可以定义输入参数和返回输出变量的M文件.本文介绍通过建立函数文件(Function)来求解一元二次方程的方法. 工具/材料 MATLAB Function 操作方法 01 第一 ...

  4. 转载:如何规范地编写一个MATLAB函数文件

    ---------------------  作者:桂哥317  来源:CSDN  原文:https://blog.csdn.net/qq_15971883/article/details/82884 ...

  5. 如何规范地编写一个MATLAB函数文件

    本文介绍如何规范地编写一个函数文件. 通常,函数文件由函数声明行.H1行.在线帮助文本区.编写和修改记录.函数主体等几个部分组成.格式如下: function 输出形参表 = 函数名(输入形参表) 在 ...

  6. 【Matlab】如何规范地编写一个MATLAB函数文件

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

  7. 3.6 matlab函数文件的定义与调用

    1.函数文件的基本结构 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 当有多个形参时,形参之间用逗号分隔,组成形参表.当输出形参多于一个时,应该用方括号括起来,构成一个 ...

  8. matlab函数参数命令,matlab函数文件中的输出参数如何不在命令窗口显示

    www.mh456.com防采集. 不要直接像普通程序2113一样运行函数,函数是用来5261调用的,如果你在其它程序中调4102用或在命1653令行中输入result=function**():的话 ...

  9. Matlab函数bwmorph简介 图像处理

    函数功能: 对二值图像进行数学形态学(Mathematical Morphology)运算. 语法格式: BW2 = bwmorph(BW,operation) 对二值图像进行指定的形态学处理. BW ...

  10. Matlab函数linspace简介

    用法:linspace(x1,x2,N) 功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量.其中x1.x2.N分别为起始值.中止值.元素个数.若缺省N,默认点数为1 ...

最新文章

  1. 中国科学技术大学 中科大(USTC)UBUNTU源Linux镜像站IPV4/IPV6
  2. 【福利派送】浪漫七夕,不可辜负!这 8 份礼物请收下!
  3. 使用变量_在 Linux 中使用变量 | Linux 中国
  4. JAva面试题(微信分享)
  5. Linux与Windows文件查找命令
  6. android r.java 原理,深入理解Android消息处理系统原理
  7. c语言递归函数变量作用域,C语言课程变量的作用域和生存周期、递归.ppt
  8. SQL技巧(多行合并一列)
  9. 【转载】徐小平techCrunch演讲:创业者要找到跟你同生共死的伙伴!
  10. 收藏!MySQL 面试必须掌握的 8 个知识点!
  11. [转] C# mysql 事务回滚
  12. Uipath文档教程
  13. 数据库系统之ANSI SQL中的事务处理
  14. Maya中怎么一键清除历史
  15. csp-j/s组第一轮测试140题版本模拟试题及解析
  16. 消费卡“裸奔”倒计时!商务部:排查风险,异常发卡企业将上“黑名单”
  17. 瑞星微RK3288开发板 (ARM Cortex-A17架构)
  18. ORA-01426数字溢出问题
  19. matlab中ARCH效应检验步骤,请教一下各位大神!如何判断ARCH效应(附ARCH-LM检验结果)...
  20. java eden区_请说明一下eden区和survial区的含义以及工作原理?

热门文章

  1. FPGA入门程序(1)——流水灯
  2. java探索之native方法源码实现
  3. 你手机里装过最牛的软件是什么,精选15款分享,有一个你没用过
  4. 基于java的在校大学生贷款管理系统
  5. Navicat 注册机破解问题
  6. PS将红底证件照改为白底
  7. python 词频统计
  8. 这款完全开源可自主DIY的小程序商城太强大了,直接可给客户搭建赚米
  9. rtthread qspi w25q256
  10. 税务大比武网络攻防复习(完整版)