1.函数文件结构
Matlab:函数与脚本均为*.m文件,以function开头的文件一般为函数文件,否则是脚本文件。
函数文件以第一个函数为函数文件的主函数,外部文件只能调用主函数。
一般要求函数名与函数文件名同名,外部文件和脚本通过函数文件名寻找函数。
外部文件调用时,只在当前目录下寻找函数,如果需要其他文件夹下的函数,通过addpath()命令添加路径。
脚本文件内部可以写函数。
2.函数用法
函数需要声明输入与输出变量。函数结构为:
function [outputArg1,outputArg2] = untitled5(inputArg1,inputArg2)
%UNTITLED5 此处显示有关此函数的摘要
% 此处显示详细说明
outputArg1 = inputArg1;
outputArg2 = inputArg2;
end
在不同函数内部使用不同的堆栈,函数内部定义的函数(嵌套定义法)不可被其他函数调用。例如:
错误写法:
function [outputArg1,outputArg2] = test2(inputArg1,inputArg2)
% test函数
% funson1为test2所有(嵌套定义),不能被funson2调用
function [output1] = funson1(inputq)
output1 = inputq +8;
end
outputArg1 = funson1(inputArg1)+8;
outputArg2 = sunson2(inputArg2)+9;
end
function [output2] = funson2(inputq)
output2 = funson1(inputq)+3;%调用失败报错
end
正确写法:
function [outputArg1,outputArg2] = test2(inputArg1,inputArg2)
% test函数
% funson1(非嵌套定义)和funson2均为公有,可以被test2调用,也可以互相调用
outputArg1 = funson1(inputArg1)+8;
outputArg2 = sunson2(inputArg2)+9;
end
function [outputArg1] = funson1(inputq)
outputArg1 = inputq +8;
end
function [output2] = funson2(inputq)
output2 = funson1(inputq)+3;
end
函数可以多输入,多输出,使用方法为:
[a,b] = functiontest(1,2)
函数文件中,子函数可以使用同名变量,但是在嵌套定义中,子函数与主函数共享堆栈变量名,尽量不要定义与其它子函数或主函数相同的变量。非嵌套的定义则无所谓。