MATLAB函数文件的使用

MATLAB函数文件的使用

目录

  • MATLAB函数文件的使用
    • 1.函数文件基本结构:
        • (1)文件名
        • (2)注释说明部分
        • (3)函数体语句
    • 2.函数的调用
      • 2.1函数的递归调用
    • 3.函数参数的可调性
    • 4.局部变量和全局变量
      • 4.1局部变量
      • 4.2全局变量

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.降低程序的可读性

你可能感兴趣的:(MATLAB,matlab)