持续(表面意义是持续的、连续的) )。
定义永久变量% %声明静态变量
Syntax%%语法
持续X Y Z定义局部变量X Y Z
说明,说明
其实是定义局部静态变量的语法,变量的生命周期是全局的,但可见性在声明的函数内部
永久x y z定义x,y,andzasvariablesthatarelocaltothefunctioninwhichtheyaredeclared; yettheirvaluesareretainedinmemorybetweencallstothefunction。
定义局部静态变量X Y Z,并在函数范围内声明X Y Z。 这些值限定在此函数内。
persistentvariablesaresimilartoglobalvariablesbecausematlabcreatespermanentstorageforboth.theydifferfromglobalvariablesinthablesinthath onlytothefunctioninwhichtheyaredeclared.thispreventspersistentvariablesfrombeingchangedbyotherfunctioning
永久变量(局部变量)与全局变量(全局变量)全局变量非常类似。 因为matlab在它们身上有固定的内存。 不同的是,永久变量只在声明的函数范围内标识。 与其他函数的变量和MATLAB命令行区分开来。
persistentvariablesareclearedwhenthem-fileisclearedfrommemoryorwhenthem-fileischanged.tokeepanm-fileinmemoryuntilmatlatlatanged
当m文件从内存中清除或m文件发生更改时,永久变量将被清除。 要将m文件保留在内存中,请使用mlock
ifthepersistentvariabledoesnotexistthefirsttimeyouissuethepersistentstatement,itisinitializedtotheemptymatrix。
如果声明时没有为永久变量赋值,它将初始化为空矩阵。
itisanerrortodeclareavariablepersistentifavariablewiththesamenameexistsinthecurrentworkspace。
如果当前工作区中存在具有相同名称的变量,则声明具有相同名称的永久变量将报告错误。
Remarks注释
thereisnofunctionformofthepersistentcommand (I.e .youcannotuseparenthesesandquotethevariablenames )。
在Matlab中,永久变量不能声明为函数参数。
Example示例
thisfunctionpromptsausertoenteradirectorynametouseinlocatingoneormorefiles.iftheuserhasalreadyenteredthisinformation,and it theydonotneedtoenteritagain.thisisbecausethefunctionstoresitinapersistentvariable (lastdir ) )。 andoffersitasthedefaultselection.hereisthefunctiondefinition :
此函数提示您输入一系列字符锚文件。 如果你已经输入了正确的信息,就不需要再改变了。
此函数定义局部变量lastDir,并将默认选择分配给该lastDir。 函数的列如下所示。
function find _ file (文件) %%头文件
永久延迟%定义永久变量
ifisempty(lastdir ) )。
prompt='Enter directory: '; %初始状态为' Enter directory:
else
prompt=[ ' enter directory [ ' lastdir ' ] : ' ]; %默认路径名
结束
响应=input (prompt,' s '; 输入%路径名
if~isempty (响应) )。
dirName=response;
else
dirName=lastDir;
结束
查找dir (静态名称,文件) %文件
lastDir=dirName; %赋值
executethefunctiontwice.the first time,itpromptsyoutoentertheinformationanddoesnotofferadefault 3360
光盘(MATLAB根)
find_file(is*.m ) )
enter directory :工具箱/MATLAB/str fun /
iscellstr.mischar.mis letter.mis space.misstr.m
isstrprop.m
The second time,itdoesofferadefaulttakenfromthepersistentvariabledirname :
find_file(is*.m ) )
enter directory [工具箱/MATLAB/str fun/] :工具箱/MATLAB/elmat /
isempty.m isfinite.m isscalar.m
isequal.m isinf.m isvector.m
isequalwithequalnans.m isnan.m