码迷,mamicode.com
首页 > 其他好文 > 详细

matlab中的静态变量

时间:2014-11-07 16:25:01      阅读:402      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   sp   strong   文件   

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的值都会加一。

清除工作区间的a变量的值(要使得y的只清空,重新计算)clear y或者clear all(清除全部变量的值)即可

 

感谢原作者,转自http://blog.sina.com.cn/s/blog_4b94ff130100e9xl.html

 

matlab中的静态变量

标签:style   blog   http   io   color   ar   sp   strong   文件   

原文地址:http://www.cnblogs.com/Daringoo/p/4081564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!