Re: [問題] 如何使用clear已回收

看板MATLAB作者 (我...)時間16年前 (2009/07/09 23:50), 編輯推噓9(9010)
留言19則, 5人參與, 最新討論串2/2 (看更多)
clear all 不能這樣用在function開頭裡面 那長遠之後很容易造成難以抓到的蟲 如果照正常規則來講 是 clear XXX變數 就會清掉那一個變數的buffer 但如果是只打 clear 原則上就是等同於clear all 清掉全部 因為沒道理只清掉一個(那到底要清哪一個) clear就跟打掃房間一樣 你想什麼時候打掃完全看需要而定 沒有特殊的規則 但不要清得太乾淨 這樣會很容易花很多時間debug ※ 引述《QQ29 (我愛阿蓉)》之銘言: : 這問題有點蠢= = : 不過爬文也沒人問過~ matlab接觸很淺.. : 我有一個檔案叫 test.m : function var=test() : clear all : .............. : end : 這樣寫clear all好像不會發生作用耶... : 在請問 clear和clear all差別在哪裡?我看結果都一樣(打在cmd line) : 我該怎麼樣使用clear呢@@ : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.21.152

07/09 23:52, , 1F
可是我想說每次執行程式就把workingspace的東西先刪光再跑耶
07/09 23:52, 1F

07/09 23:53, , 2F
難道一定要指定名稱嘛@@ 有沒有萬用寫法= =
07/09 23:53, 2F

07/10 00:22, , 3F
如果你有迴圈 clear all會把你不想刪的東西也刪了
07/10 00:22, 3F

07/10 00:23, , 4F
如果是整個程式的最開始 那clear是好習慣
07/10 00:23, 4F

07/10 00:27, , 5F
請問一下 因為matlab我也是自己亂摸~我是都把主程式寫成函式
07/10 00:27, 5F

07/10 00:28, , 6F
cmd那邊呼叫 順便丟參數進去 我是想把 上一次跑的刪掉...
07/10 00:28, 6F

07/10 00:28, , 7F
一般來講大家都不是這樣寫的嘛?? 不寫成函式該怎麼丟參數??
07/10 00:28, 7F

07/10 00:29, , 8F
那你就在cmd那邊先clear就好啦 按個幾次↑應該蠻快的
07/10 00:29, 8F

07/10 00:39, , 9F
如果你丟參數的方式有一定規律的話 寫成一個主函式再去呼叫
07/10 00:39, 9F

07/10 00:40, , 10F
應該是會比你手動一個個改參數快 我自己測了一下 function內
07/10 00:40, 10F

07/10 00:42, , 11F
部宣告的變數並不會傳回主函式 所以在fun內部的確用不到clear
07/10 00:42, 11F

07/10 01:26, , 12F
噢樓上一說才想到,function裡的變數是local的,所以
07/10 01:26, 12F

07/10 01:26, , 13F
你要去清workspace的變數也沒什麼意義吧
07/10 01:26, 13F

07/10 01:26, , 14F
他們根本不會互相影響
07/10 01:26, 14F

07/10 01:33, , 15F
因為我是都把主程式寫成function 所以會有return值...
07/10 01:33, 15F

07/10 01:34, , 16F
所以會留在working space 想說要清掉之類的@@
07/10 01:34, 16F

07/10 02:15, , 17F
clear all我都只有在一開始才會這麼
07/10 02:15, 17F

07/10 03:34, , 18F
return出來的值也不會影響你下次跑function吧?那為何要刪
07/10 03:34, 18F

07/10 07:54, , 19F
QQ29你的用法 用編輯器的cell view應該會方便一些...
07/10 07:54, 19F
文章代碼(AID): #1ALX7KZC (MATLAB)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1ALX7KZC (MATLAB)