matlab清理程序onCleanup
動(dòng)機(jī)
用戶編寫完M文件后,還有最后一項(xiàng)任務(wù)要完成:關(guān)閉文件,刪除臨時(shí)文件等。Matlab提供了一個(gè)函數(shù)用作后面的清理,有點(diǎn)類似于面向?qū)ο笳Z言中的析構(gòu)函數(shù),這就是onCleanup
用法
cleanupObj = onCleanup(cleanupFun)其中cleanupFun是一個(gè)函數(shù)句柄(無輸入值),當(dāng)cleanupObj被清理時(shí)調(diào)用cleanupFun。因此cleanupObj必須有,如果沒有就會(huì)有警告(一般來說,這個(gè)函數(shù)是在M結(jié)束后調(diào)用,但是這個(gè)也不盡然,只要是這個(gè)cleanupFun被清理了,就會(huì)調(diào)用cleanupFun。因?yàn)樵贛文件結(jié)束后,所有的臨時(shí)變量會(huì)被清理,所以M文件結(jié)束后就會(huì)自動(dòng)調(diào)用cleanupFun)
另外,在一個(gè)M文件中可以有多個(gè)onCleanup語句,當(dāng)相應(yīng)的變量被清理時(shí),它們都會(huì)執(zhí)行。由于變量清理的順序不能確定,所以它們執(zhí)行的順序也不能確定。如果對(duì)執(zhí)行順序有要求,最好把它們都放到一個(gè)清理函數(shù)中吧。
例子1
function y = Add2(x) y = x + 2; c = onCleanup(@Hello);function Hello fprintf('Hello\n');運(yùn)行
d=Add(3);輸出
Hello例子2
function [y,c] = Add2(x) y = x + 2; c = onCleanup(@Hello);function Hello fprintf('Hello\n');“
運(yùn)行
無輸出
此時(shí)運(yùn)行
輸出
Hello從例子2,大家明白了返回值得重要性了吧
技巧
清理函數(shù)(就是上面的那個(gè)cleanupFun)是一個(gè)無輸入值得函數(shù),如果大家想給清理函數(shù)傳遞參數(shù),怎么辦?
用匿名函數(shù)!
再比如
c = onCleanup(@()function(input))總結(jié)
以上是生活随笔為你收集整理的matlab清理程序onCleanup的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10系统下“从开始屏幕取消固定”无
- 下一篇: 在maltab中画带参数的函数图像