自定义函数
M文件的分类:脚本文件和函数文件
利用which + 文件名可查找文件的位置
H1行:指的是帮助文本的第一行,是函数定义下的第一个注释行,是供Look for查询时使用的
函数的定义:
function [返回值1,返回值2,....] = 函数名(参数值1,参数值2,...)%当返回值只有一个时,可以不用写方括号
%H1行
%其他注释行
可执行代码
return%return也可以写在可执行代码中的某一行,当代码执行到return时则返回该函数结果,如果return是放在一个函数的最后一行时,可以省略不写
保存函数文件时文件名要与函数名相同
函数定义完之后不能独立运行,需要有表达式或其他函数来调用才可以运行
例:
function y = dist2(x1,y1,x2,y2) %定义了一个函数名为dist2的函数,其返回值为y
%这是一个计算两点间距离的函数 %H1行
%........ %其他注释行
y = sqrt((x1-x2)^2+(y1-y2)^2)
return
命令行窗口调用
>> a1 = 3;
>> a2 = 4;
>> b1 = 5;
>> b2 = 6;
>> result = dist2(a1,a2,b1,b2)
result =
2.82842712474619
另一种方法
function y = dist2(p1,p2)
% 计算两点间的距离
%......
x1 = p1(1);
y1 = p1(2);
x2 = p2(1);
y2 = p2(2);
y = sqrt((x1-x2)^2+(y1-y2)^2);
命令行窗口运行
>> A = [3,4];
>> B = [5,6];
>> result = dist2(A,B)
result =
2.82842712474619
保存自定义函数时保存的位置要与文件的位置一致,否则系统会找不到自定义的函数
设置断点:在变量前面有横线的都可以设置断点,可以直接点击变量前面的横线设置断点,或者是将光标放在要设置断点的那一行按快捷键F12,进行重复操作可删除断点
遇到断点之后若是像继续执行程序进入下一个断点可以按快捷键F5
matlab中无论是数组还是变量都是按值进行传递,
函数内部不会受到外部的影响,
matlab中内置有nargin(用来判断输入了多少个参数),nargout(用来判断输出多少个参数),一般只出现在函数体的内部,可用if 语句进行判断,如:if nargin == n
matlab中检测函数的工具:
message = nargchk(min,max,num)%当接收到参数num小于最小的min参数时,则返回not enough input argument,若num大于max时则返回too many input argument
error(message)%将出错的信息传到error并显示
也可以写成error(nargchk(min,max,num))
warning(' ')%警告函数
函数与程序之间的数据交换方式:形参列表与全局变量