天天加油 - 助您成才
M文件函数
您正在看的MATLAB是:M文件函数。

  使用MATLAB函数时,例如inv,abs,angle和sqrt,MATLAB获取传递给它的变量,利用所给的输入,计算所要求的结果。然后,把这些结果返回。由函数执行的命令,以及由这些命令所创建的中间变量,都是隐含的。所有可见的东西是输入和输出,也就是说函数是一个黑箱。

  这些属性使得函数成为强有力的工具,用以计算命令。这些命令包括在求解一些大的问题时,经常出现的有用的数学函数或命令序列。由于这个强大的功能,MATLAB提供了一个创建用户函数的结构,并以M文件的文本形式存储在计算机上。MATLAB函数fliplr是一个M文件函数良好的例子。

  functiony=fliplr(x)

  % FLIPLRFlipmatrixintheleft/rightdirection.

  % FLIPLR(X)returnsXwithrowpreservedandcolumnsflipped

  % intheleft/rightdirection.

  %

  % X=1 2 3 becomes 3 2 1

  % 4 5 6 6 5 4

  %

  % SeealsoFLIPUD,ROT90.

  % Copyright(c)1984-94byTheMathWorks,Inc.

  [m,n]=size(x);

  y=x(:,n:-1:1);

  一个函数M文件与脚本文件类似之处在于它们都是一个有.m扩展名的文本文件。如同脚本M文件一样,函数M文件不进入命令窗口,而是由文本编辑器所创建的外部文本文件。一个函数的M文件与脚本文件在通信方面是不同的。函数与MATLAB工作空间之间的通信,只通过传递给它的变量和通过它所创建的输出变量。在函数内中间变量不出现在MATLAB工作空间,或与MATLAB工作空间不交互。正如上面的例子所看到的,一个函数的M文件的第一行把M文件定义为一个函数,并指定它的名字。它与文件名相同,但没有.m扩展名。它也定义了它的输入和输出变量。接下来的注释行是所展示的文本,它与帮助命令:»helpfliplr相对应。第一行帮助行称为H1行,是由lookfor命令所搜索的行。最后,M文件的其余部分包含了MATLAB创建输出变量的命令。

  8.1 规则和属性

  M文件函数必须遵循以下特定的规则。除此之外,它们有许多的重要属性。包括:

  1. 函数名和文件名必须相同。例如,函数fliplr存储在名为fliplr.m文件中。

  2. MATLAB头一次执行一个M文件函数时,它打开相应的文本文件并将命令编辑成存储器的内部表示,以加速执行以后所有的调用。如果函数包含了对其它M文件函数的引用,它们也同样被编译到存储器。普通的脚本M文件不被编译,即使它们是从函数M文件内调用;打开脚本M文件,调用一次就逐行进行注释。

  3. 在函数M文件中,到第一个非注释行为止的注释行是帮助文本。当需要帮助时,返回该文本。例如,»helpfliplr返回上述前八行注释。

  4. 第一行帮助行,名为H1行,是由lookfor命令搜索的行。

  5. 函数可以有零个或更多个输入参量。函数可以有零个或更多个输出参量。

  6. 函数可以按少于函数M文件中所规定的输入和输出变量进行调用,但不能用多于函数M文件中所规定的输入和输出变量数目。如果输入和输出变量数目多于函数M文件中function语句一开始所规定的数目,则调用时自动返回一个错误。

  7. 当函数有一个以上输出变量时,输出变量包含在括号内。例如,[V,D]=eig(A)。不要把这个句法与等号右边的[V,D]相混淆。右边的[V,D]是由数组V和D所组成。

  8. 当调用一个函数时,所用的输入和输出的参量的数目,在函数内是规定好的。函数工作空间变量nargin包含输入参量个数;函数工作空间变量nargout包含输出参量个数。事实上,这些变量常用来设置缺省输入变量,并决定用户所希望的输出变量。例如,考虑MATLAB函数linspace:

  functiony=linspace(d1,d2,n)

  % LINSPACELinearlyspacedvector.

  % LINSPACE(x1,x2)generatesarowvectorof100linearly

  % equallyspacedpointsbetweenx1andx2.

  % LINSPACE(x1,x2,N)generatesNpointsbetweenx1andx2.

  %

  % SeealsoLOGSPACE,:.

  % Copyright(c)1984-94byTheMathWorks,Inc.

  ifnargin==2

  n=100;

  end

  y=[d1+(0:n-2)*(d2-d1)/(n-1)d2];

  这里,如果用户只用两个输入参量调用linspace,例如linspace(0,10),linspace产生100个数据点。相反,如果输入参量的个数是3,例如,linspace(0,10,50),第三个参量决定数据点的个数。

  可用一个或两个输出参量调用的函数的一个例子是MATLAB函数size。尽管这个函数不是一个M文件函数(它是一个内置函数),size函数的帮助文本说明了它的输出参量的选择。

  SIZE Matrixdimensions.

  D=SIZE(X),forM-by-NmatrixX,returnsthetwo-element

  rowvectorD=[M,N]containingthenumberofrowsandcolumns

  inthematrix.

  [M,N]=SIZE(X)returnsthenumberofrowsandcolumns

  inseparateoutputvariables.

  如果函数仅用一个输出参量调用,就返回一个二元素的行,它包含行数和列数。相反,如果出现两个输出参量,size分别返回行和列。在M文件函数里,变量nargout可用来检验输出参量的个数,并按要求修正输出变量的创建。

  9. 当一个函数说明一个或多个输出变量,但没有要求输出时,就简单地不给输出变量赋任何值。MATLAB函数toc阐明了这个属性。

  functiont=toc

  % TOC Readthestopwatchtimer.

  % TOC,byitself,printstheelapsedtimesinceTICwasused.

  % t=TOC;savestheelapsedtimeint,insteadofprintingitout.

  %

  % SeealsoTIC,ETIME,CLOCK,CPUTIME.

  % Copyright(c)1984-94byTheMathWorks,Inc.

  % TOCusesETIMEandthevalueofCLOCKsavedbyTIC.

  globalTICTOC

  ifnargout<1

  elapsed_time=etime(clock,TICTOC)

  else

  t=etime(clock,TICTOC);

  end

1 2 3 下一页
  • 上一篇教程:
  • 下一篇教程:
  • 排行

    1. M文件函数
    2. [组图] 融会CorelDRAW9之二——文
    3. [组图] 融会CorelDRAW9之五——透
    4. [组图] CorelDraw 描图小技巧
    5. 偷“技”取“巧”用CorelDraw
    6. CorelDRAW 快捷键大全
    7. [组图] Coreldraw 10设计应用之台
    8. 用CorelDraw轻松制作名片
    9. [组图] 用Corel Draw绘制中国画荷
    10. [组图] CorelDRAW特色滤镜show
    11. 开目CAD图形标题栏信息的自动抽取
    12. 利用VBA编程实现从EXCEL表到AUTO
    13. 拉伸和拉长、打断和分解命令的比
    14. 图像对象的设置命令
    15. DWF文件简介、创建、设置和查看
    16. 创建千禧堂模型的渲染图
    1. MATLAB 概 论
    2. [组图] 融会CorelDRAW9之二——文
    3. [组图] 融会CorelDRAW9之五——透
    4. [组图] CorelDraw 描图小技巧
    5. 偷“技”取“巧”用CorelDraw
    6. CorelDRAW 快捷键大全
    7. [组图] Coreldraw 10设计应用之台
    8. 用CorelDraw轻松制作名片
    9. [组图] 用Corel Draw绘制中国画荷
    10. [组图] CorelDRAW特色滤镜show
    11. 开目CAD图形标题栏信息的自动抽取
    12. AutoCAD二次开发程序的自动安装处
    13. 用Pline绘制齿轮
    14. 利用VBA编程实现从EXCEL表到AUTO
    15. 拉伸和拉长、打断和分解命令的比
    16. 图像对象的设置命令
    1. CorelDraw的18个技巧
    2. 小巧玲珑的平面制图工具--CB-CAD
    3. ATUOCAD中实体的选择方式
    4. AutoCAD2005安装详细图解
    5. 让AutoCAD启动为指定模板
    6. AutoCAD中线型的定制和使用
    7. 使用Visual C++创建ARX程序
    8. 使用Visual LISP创建简单的LISP应
    9. 自定义菜单文件
    10. PRO/E—WF渲染教程
    11. 在PROE野火版中的帖花
    12. Pro/E 工程图的重新生成
    13. 基于Pro/ENGINEER的渐开线变位直
    14. 应用Pro/ENGINEER软件进行三维布
    15. pro/e关系式、函数的相关说明数据
    16. 用Pro/E画减速机渐开线斜齿圆柱齿

    最近更新

  • 推荐阅读
  • MATLAB《M文件函数》M文件函数
    关于我们 | 版权申明 | 广告服务 | 友情链接 | 网站地图 | 使用帮助 | ©2006-2008 TTADD.COM