[Matlab]基础教程学习笔记(三):编辑器和程序调试

先来复习一下上一章中M文件的内容。

M文件分类:

  • 命令文件(脚本文件,Script File)
  • 函数文件(Function File)

区别
命令文件没有输入,没有返回;
命令文件可以对工作空间的变量操作,结果返回工作空间,而函数文件中的变量为局部变量,函数执行完毕,变量被清除;
命令文件可以直接运行,函数文件见需要调用的形式运行(除了特殊的函数文件之外)。


下面来介绍一下函数文件。

函数文件的基本格式如下:


function [输出形参]=函数名([输入形参])
[注释说明]
函数体


关于函数文件名
通常和函数名一致,如果不一致,那么忽略函数名,调用时使用函数文件名。


注释部分
注释部分可以提供help以及lookfor命令的查找功能


下面来看一段示例代码:

function re = add_my(a, b)
%ADD_MY    完成变量a和b的相加
% 输入:   a加数1
%          b加数2
% 输出:   re为输入两个参数的加和
% 
% $Author:why
% $Date:   2013-03-12
% Version: V1.0

re = a + b;

转换到输出台,使用help查看函数相关信息:

>> help add_my
 add_my    完成变量a和b的相加
  输入:   a加数1
           b加数2
  输出:   re为输入两个参数的加和
  
  $Author:why
  $Date:   2013-03-12
  Version: V1.0


直接调用函数即可。注意,调用时输入的是文件名而不是函数文件,二者不一致输入文件名调用对应的函数

>> add_my(1,2)

ans =

     3



函数参数可调标识变量

  • nargin
  • nargout
  • varargin
  • varargout

可以完成传递参数的可调功能,类似于高级语言中的函数重载和多态。
前两者为输入输出参数个数,后面两个可以代表未知的输入输出变量。


举一个类似于函数重载的用例说明nargin的使用:

function re = add_multi(a, b, c, d)
% 函数参数可调标识变量
% 
% nargin:输入参数的个数

if nargin == 4
    re = a + b + c + d;
elseif nargin == 3
    re = a + b + c;
elseif nargin == 2
    re = a + b;
else
    error('输入参数个数错误');
end


举一个栗子说明nargout的使用:

function [a, b] = add_mu(c, d, e, f)
% 
% 
% 

if nargout == 2
    a = c + d + e + f;
    b = c * d * e * f;
else
    a = c + d + e + f;
end

在使用的时候注意,表明两个输出的时候是乘积,一个输出是加和:

>> [a,b]=add_mu(1,2,3,4)

a =

    10


b =

    24


举一个栗子说明varargin的使用,用来存储形参

如果输入的形参过多,不会出现too many input arguments的提示了,

也就是说如果有很多变量可以用这个来调整

function re = add_var(a, b, varargin)
% 
% 
% 

error(nargchk(2, 4, nargin));%最小2最大4检测内容nargin

if nargin == 2
    re = a + b;
elseif nargin == 3
    c = varargin{1};
    re = a + b + c;
elseif nargin == 4
    c = varargin{1};
    d = varargin{2};
    re = a + b + c + d;
else
    error('wrong');
end

运行一下看看:

>> add_var(1)
Error using add_var (line 6)
Not enough input arguments.
 
>> add_var(1,2)

ans =

     3

>> add_var(1,2,3)

ans =

     6

>> add_var(1,2,3,4)

ans =

    10

>> add_var(1,2,3,4,5)
Error using add_var (line 6)
Too many input arguments.
 

下面来介绍一下global全局变量。

使用global声明,可以提供不同的M文件访问同一个变量。
不同的函数之间访问同一个变量,可以通过返回参数来设置,或者使用全局变量。

在GUI中,也可以通过其他方式完成(GUI数据,app数据等)。

你可能感兴趣的:([Matlab]基础教程学习笔记(三):编辑器和程序调试)