Function
用 来 定 义 函 数 , 一 般 一 个 函 数 放 在 一 个 .m 文 件 里 。 举 个 简 单 的 例 子 建 立 一 个
myfunction.m,然后在文件中写。
function y=myfunction(a,b)
其中 a,b 是输入函数的参数,y 是函数返回的值。当需要返回多个值时,可以将 y 看作一个
数组,或者直接将函数的开头写成如 function [x,y]=myfunction(x,y)的形式。
然后就是定义函数的内容,通俗的说就是怎样由输入参数 a,b 得到返回值 y。比如最简单的
y=a+b。
总结一下,将下面的代码
function y=myfunction(a,b)
y=a+b;
保存为一个 m 文件 myfunction.m,调用方式如下。
num=myfunction(3,4);
这样就可以由函数中的 y=a+b 得到 num 的值是 3+4=7。
persistent
persistent X Y Z 将 X,Y,Z 定义为在其声明处的函数的局部变量。然而,这些变量的值在
函数调用期间在内存中保存(应该是堆区)。Persistent 变量和 global(全局)变量相似,因
为 Matlab 为他们创建永久的存储空间。但是 Persistent 变量与 global(全局)变量不同之
处在于 Persistent 变量只对声明该变量的函数是可见的。这可以防止该变量被其他函数或者
Matlab 命令行改变。
当 M 文件被从内存中清除或当 M 文件被改变时,Persistent 变量被清除。
如果 Persistent 变量在声明时没有赋值,将被初始化为空矩阵。
如果在当前工作空间中有同名的变量存在,则声明同名的 Persistent 变量将会报错。
Matlab 不允许将 Persistent 变量声明为函数参数。
其实就是定义局部静态变量的语法,变量生命期为全局,但是可见性在其被声明的函数内部
Examples20100106
function y=testPersistent()
persistent a;
if isempty(a)%初始化方法
a=0;
end
a=a+1;
y=a;
之后调用一次 y=testPersistent;y 的值都会加一。
nargin 是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常
可以用它来设定一些默认值。
评论2