函数文件

基本结构

function[输出形参]=函数名([输入形参])

[注释说明]

函数体

函数文件名

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

注释部分

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

 

eg:

函数

functionanswer=miltuply_two(a,b)

%miltuply_two  两个数相除

%输入:        a

%              b

%

%作者:        张三

%日期:        2017.7.5

%版本号:       V1.0

answer=a*b;

 

调用方式:miltuply_two(2,9.8)

另外用help或者lookfor可以查看函数的详细信息

 

函数可调标识变量

功能:完成传递参数可调功能,就像c++中的函数重载和多态一样

nargin、nargout为输入输出参数个数,varargin、varargout(直接用数组的形式添加输出)

eg1:     输入参数可调

functionanswer=miltuply_two(a,b,c,d)
if nargin==2
    answer=a*b;
elseif nargin==3
    answer=a*b*c;
elseif nargin==4
    answer=a*b*c*d;
end
 
eg2:   输出参数可调
function[a,b]=multiply(c,d,e,f)
 
if nargout==2
    a=c*d*e*f;
    b=c*d+e*f;
else
    a=c*d*e*f;
end
 
eg3:     输入参数个数
functionanswer=multiply1(a,b,varargin)
narginchk(2,4);                        %用于检验参数过多
if nargin==2
    answer=a*b;
elseif nargin==3
    answer=a*b*varargin{1};    %注意这里varargin是一个元胞数组
elseif nargin==4
    answer=a*b*varargin{1}*varargin{2};
else
    error('错误');
end

 

全局变量

使用global声明(每个文件中都需要申明),可以提供不同的m文件访问同一个变量

 

调试技巧

1.在程序文件中加上用于判断的错误语句error(‘错误内容’)

2.断点和单步调试  直接下断点进行单步调试(和vs编译器调试方式基本相同,另外逻辑错误也可能发现)