matlab清理程式onCleanup

2021-07-09 07:43:42 字數 1261 閱讀 4823

使用者編寫完m檔案後,還有最後一項任務要完成:關閉檔案,刪除臨時檔案等。matlab提供了乙個函式用作後面的清理,有點類似於物件導向語言中的析構函式,這就是oncleanup

cleanupobj =oncleanup(cleanupfun)
其中cleanupfun是乙個函式控制代碼(無輸入值),當cleanupobj被清理時呼叫cleanupfun。因此cleanupobj必須有,如果沒有就會有警告(一般來說,這個函式是在m結束後呼叫,但是這個也不盡然,只要是這個cleanupfun被清理了,就會呼叫cleanupfun。因為在m檔案結束後,所有的臨時變數會被清理,所以m檔案結束後就會自動呼叫cleanupfun)

另外,在乙個m檔案中可以有多個oncleanup語句,當相應的變數被清理時,它們都會執行。由於變數清理的順序不能確定,所以它們執行的順序也不能確定。如果對執行順序有要求,最好把它們都放到乙個清理函式中吧。

function

y = add2

(x)y = x + 2;

c = oncleanup(@hello);

function

hello

fprintf

('hello\n');

執行

d=add(3);
輸出

hello
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 程式除錯

在程式除錯時,程式執行中變數的值是乙個重要的線索。因此,檢視變數值是程式除錯的重要線索,由於在函式呼叫時只返回最後的輸出引數,而不返回中間變數,因此,可以選擇下面的方法檢視程式執行中的變數值。1 通過分析,將可能出錯的語句後面的分號刪除,將結果顯示在命令視窗中,與預期值進行比較。2 利用函式disp...

matlab程式 入門

imshow uint8 xx title 重構圖 x imread flower.jpg image x colormap map title 原始影象 畫出原影象 x rgb2gray x hv rgb2hsv x 可以通過下面的程式看一幅圖的hsv三個通道 h hv 1 s hv 2 v hv...

matlab練習程式(c c 呼叫matlab)

就我目前了解的c 呼叫matlab有兩種方法。第一種是通過matlab引擎呼叫,也就是這裡用到的方法。第二種是用matlab將m檔案編譯為相應的h lib dll檔案再加以呼叫。使用engine所用到的h和lib檔案基本在d program files matlab r2010b extern裡面,...