动机

用户编写完M文件后,还有最后一项任务要完成:关闭文件,删除临时文件等。Matlab提供了一个函数用作后面的清理,有点类似于面向对象语言中的析构函数,这就是onCleanup

用法

cleanupObj = onCleanup(cleanupFun)

其中cleanupFun是一个函数句柄(无输入值),当cleanupObj被清理时调用cleanupFun。因此cleanupObj必须有,如果没有就会有警告(一般来说,这个函数是在M结束后调用,但是这个也不尽然,只要是这个cleanupFun被清理了,就会调用cleanupFun。因为在M文件结束后,所有的临时变量会被清理,所以M文件结束后就会自动调用cleanupFun)

另外,在一个M文件中可以有多个onCleanup语句,当相应的变量被清理时,它们都会执行。由于变量清理的顺序不能确定,所以它们执行的顺序也不能确定。如果对执行顺序有要求,最好把它们都放到一个清理函数中吧。

例子1

function y = Add2(x)
y = x + 2;
c = onCleanup(@Hello);function Hello
fprintf('Hello\n');

运行

d=Add(3);

输出

Hello

例子2

function [y,c] = Add2(x)
y = x + 2;
c = onCleanup(@Hello);function Hello
fprintf('Hello\n');


运行

[d,c]=Add(3);

无输出
此时运行

clear c

输出

Hello

从例子2,大家明白了返回值得重要性了吧

技巧

清理函数(就是上面的那个cleanupFun)是一个无输入值得函数,如果大家想给清理函数传递参数,怎么办?
用匿名函数!

c = onCleanup( @() fclose('file.m'));

再比如

c = onCleanup(@()function(input))

matlab清理程序onCleanup相关推荐

  1. matlab多元回归程序,多元回归程序MATLAB程序

    <多元回归程序MATLAB程序>由会员分享,可在线阅读,更多相关<多元回归程序MATLAB程序(45页珍藏版)>请在人人文库网上搜索. 1.程序MATLAB多元回归程序matl ...

  2. 无源定位之时差估计的精确时差估计算法(ETDE)及MATLAB实现程序

    精确时差估计算法(ETDE)及MATLAB实现程序 算法原理 算法总结 性能分析 实验结果 算法原理 假设两接收站分别接收的带噪信号为 {x(kT)=s(kT)+ε1(kT)y(kT)=s(kT−D) ...

  3. matlab潮流程序,IEEE33节点matlab潮流程序.doc

    IEEE33节点matlab潮流程序 Bus [1,0,0 ; 2,100, 60; 3,90,40; 4,120,80; 5,60,30; 6,60,20; 7, 200, 100 ; 8,200, ...

  4. matlab有意思程序,matlab有意思的小程序

    10个C++趣味小程序,很有意思的.VIP专享文档 VIP专享文档是百度文库认... 现在很多人使用微信的时间已经非常长了,他们注册的微信号往上可能已经是5年前的事情了,正是由于不少使用者在这个过程当 ...

  5. matlab程序里nbus=x的意思,MATLAB潮流程序(IEEE14 直角坐标 牛拉法)

    MATLAB潮流程序(IEEE14 直角坐标牛拉法)clear baseMVA=100; %功率基值 %%读Data1中数据 load Data1.txt Bus=Data1(:,1); %节点号 V ...

  6. 怎样在matlab q-q图上读出斜率,Q分解法潮流计算matlab小程序

    <Q分解法潮流计算matlab小程序>由会员分享,可在线阅读,更多相关<Q分解法潮流计算matlab小程序(18页珍藏版)>请在人人文库网上搜索. 1.Q分解法潮流计算matl ...

  7. matlab期权风险评估算法,使用 MATLAB 应用程序根据期权价格估算风险中性密度 (risk-neutral density, RND)...

    我们为什么选择 MATLAB 我们决定创建 MATLAB 应用程序估算 RND,因为我们希望研究成果得到广泛应用,而不是仅限于在量化经济学领域或是熟悉 MATLAB 编程的和金融研究人员使用. 我们发 ...

  8. CentOS使用 Crontab定时任务清理程序日志

    Crontab定时任务 基本语法 crontab [选项] 任务的要求 设置任务调度文件:/etc/crontab 设置个人任务调度.执行 crontab –e 命令.接着输入任务到调度文件 如:*/ ...

  9. matlab密度特征,关于用MATLAB应用程序估算风险中性密度的性能分析和介绍

    由于场外期权合约的买卖在交易双方间私下进行而非通过公开市场,因而可能很难确定合约的价格有利于买方还是卖方.为对这些合约进行定价,金融分析师往往依据看涨期权或看跌期权价格估算出风险中性密度(RND)值. ...

最新文章

  1. 智能合约语言Solidity 类型介绍
  2. 几何画板论坛_伯中班主任论坛丨用爱守护生命的成长
  3. PHP判断标量,php中is_scalar如何判断变量是否是一个标量
  4. java 短链跳转原理_给你代码:短链接生成原理
  5. appium---【Mac】Appium-Doctor提示WARN:“ opencv4nodejs cannot be found”解决方案
  6. 云星空计算机名访问不可以,03.PLM系统访问金蝶云星空(webapi):读取基础资料编码、名称...
  7. qt中QTreeWidget控件的使用
  8. javascript的语法结构
  9. GitHub 2200+星的任正非语录下架了,我们找到了一份fork版
  10. 读《刘帅:在失望中寻找希望》有感
  11. 6.程序员的自我修养---可执行文件的装载与进程
  12. hash hmac java_认证加密算法php hash_hmac和java hmacSha1的问题
  13. css字体倾斜角度_css如何设置字体倾斜样式
  14. C盘AppData文件占用83.7G?
  15. 赫夫曼编码树(图解+完整代码)
  16. Good Bye 2022: 2023 is NEAR 题解
  17. SpringBoot 配置嵌入式Servlet容器(tomcat,jetty,undertow)
  18. TMS320F28377S 学习笔记2 BGA封装的焊接
  19. nutz dao 操作
  20. win7与vmware实现文件共享

热门文章

  1. 在visual studio中使用git版本系统(zz)
  2. cocos2d-x游戏实例(8)-A星算法(4)
  3. 转这个博客了,以前的博客不用了。(技术为主,寒暄为辅)
  4. 实例——在编程过程中进行单元测试
  5. msm8953+android8.1接听电话时声音由默认听筒输出改为外放输出
  6. Firefox 65.0.2 发布,Firefox 66 预计3月19日推出
  7. MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
  8. JavaEE Tutorials (24) - 资源适配器示例
  9. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)
  10. linux shell编程学习笔记(9)正则表达式