Matlab有一個毛病,就是默認只能調用同一文件夾下的函數,或者已經添加到工具箱的函數。
但是平常在寫代碼時,有一些自己寫的函數是負責處理一類問題的,能不能像其它語言一樣,用文件夾裝起來,然后需要時,調用這個文件夾下的函數呢?
當然可以!你只需要在文件的第一行加入這句話:
addpath(genpath('.\lib'));
此時我的文件夾結構是這樣的
- main.m
- lib
- func1.m
- func2.m
這樣我們就可以在 main.m 中調用 func1 和 func2 了。
當然,這樣做了以后,文件夾路徑就相當於永久添加到了matlab,如果后面不想用了(比如有時候,某些函數名相互沖突,需要去掉一個)。可用下面這段代碼移除文件夾路徑引用
rmpath(genpath('.\lib'));
如果你添加路徑后,忘了使用以上代碼進行刪除,又刪除了這個引入的代碼文件,那么在下次打開matlab時,就會報出類似下面的警告:
警告: 名稱不存在或不是目錄: XXXX
此時,在命令行窗口輸入:
edit pathdef.m
打開這個腳本文件,將會看到
p = [...
%%% BEGIN ENTRIES %%%
XXXX %你設置的路徑
XXXX
]
這里存儲了你曾經設置過的路徑,將他們手動刪除並保存就好了。
