Matlab中的静态变量

在matlab中,静态变量一般定义为如下形式:
  1. persistent model;  
一般将静态变量定义在子函数Function内,其用法与C/C++的static一致。
此外,需要注意的是,persistent定义的静态变量,只在被定义的子函数内部被识别,在主函数内被遮蔽,无法使用。
释放静态变量的方式主要是用clear命令。
如果在定义静态变量的子函数内部进行释放,则使用(clear+‘变量名’)即可,与清除普通变量方法一致。
  1. clear model;  
 如果在主函数中释放静态变量,则使用(clear+‘子函数名’),指定清除某一子函数内定义的所有静态变量。
使用(clear+‘Function’)清除所有的静态变量。
  1. Function val = func(para)  
  2.  persistent model; % 子函数内定义静态变量  
  3.  clear model;      % 子函数内部释放  
  4. end  
  5.   
  6. main()  
  7. {  
  8.  clear func;     % 主函数内部释放func内所有静态变量  
  9.  clear Function; % 释放所有的静态变量  
  10. }  
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab静态变量通常使用persistent关键字进行定义。静态变量的定义形式为:persistent 变量名。一般将静态变量定义在子函数内部,其用法与C/C++的static关键字相似。需要注意的是,通过persistent定义的静态变量只在被定义的子函数内部可见,而在主函数内部则被遮蔽,无法直接使用。要释放静态变量,可以使用clear命令。在定义静态变量的子函数内部释放静态变量时,可以使用clear '变量名'的方式,与清除普通变量的方法相同。在主函数释放子函数内定义的所有静态变量时,可以使用clear '子函数名'的方式。使用clear 'Function'可以清除所有的静态变量。举个例子,如果有一个子函数func,其定义了一个静态变量model,可以在主函数使用clear func来释放func内定义的所有静态变量。 另外,使用静态变量的一个例子是在一个函数定义一个静态变量a,并在每次函数调用时对a进行更新。可以使用persistent关键字来定义静态变量a,并在函数使用if isempty(a) a=0; end a=a+1;来对a进行更新。这样,在每次调用函数时,a都会记录上一次调用后的结果。举个例子,假设有一个函数test,其定义了一个静态变量a,初始值为0,然后在每次调用函数时,a都会自增1。调用test函数两次,第一次结果为1,第二次结果为2。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Matlab静态变量](https://blog.csdn.net/sunzhao1000/article/details/80590190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [matlab里的静态变量](https://blog.csdn.net/gameboy12615/article/details/6373305)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值