Matlab如何添加新的工具箱-經(jīng)驗(yàn)總結(jié)最近在學(xué)習(xí)遺傳算法與免疫算法,所以涉及到matlab的工具箱的應(yīng)用,尤其gads工具箱,所以在網(wǎng)上下載了一些工具箱,但是不會(huì)用,在網(wǎng)上找了點(diǎn)資料,留著以后也可以用。1,我是單獨(dú)下載的工具箱,把新的工具箱拷貝到某個(gè)目錄(我的是C:\Program Files\MATLAB\R2010\toolbox)。注意:你要是添加的很多個(gè)m文件,那就把這些m文件直接拷到再下一層你想要的工具箱的文件夾里例如,我要添加的是遺傳工具箱,在剛才的文件夾下我已經(jīng)有g(shù)ads(遺傳工具箱)文件夾了,但有的m文件還沒有,我就把新的m文件統(tǒng)統(tǒng)拷到C:\Program Files\MATLAB\R2010\toolbox\gads目錄下了如果你連某工具箱(你打算添加的)的文件夾都沒有,那就把文件夾和文件一起拷到C:\Program Files\MATLAB\R2010\toolbox下。先把工具箱保存到MATLAB安裝目錄的根目錄下面,然后運(yùn)行matlab---->file---->set path---->add folder 然后把你的工具箱文件夾添加進(jìn)去就可以了2 在matlab的菜單file下面的set path把它(C:\Program Files\MATLAB\R2010\toolbox\gads)加上。3 把路徑加進(jìn)去后在file→Preferences→General的Toolbox Path Caching里點(diǎn)擊update Toolbox Path Cache更新一下。記得一定要更新!我就是沒更新,所以添加了路徑,一運(yùn)行還是不行。后來更新了才行。4 用which newtoolbox_command.m來檢驗(yàn)是否可以訪問。如果能夠顯示新設(shè)置的路徑,則表明該工具箱可以使用了。這個(gè)我也不知道怎么用。怎么檢驗(yàn)?在命令窗口輸入which newtoolbox_command.m?還是打開which newtoolbox_command.m文件(我搜索了,沒找到這個(gè)文件啊)我一直沒搞懂。 我的matlab小經(jīng)驗(yàn)我前幾天剛剛接觸matlab? 由于要用MATLAB遺傳算法工具箱編程,我直接在安裝好的matlab命令欄輸入程序 結(jié)果提示找不到函數(shù) 后來我才了解到MATLAB自帶的工具箱是GADS,在此環(huán)境下運(yùn)行程序會(huì)出現(xiàn)函數(shù)未定義等問題,這是因?yàn)槟切┖瘮?shù)室GATBX工具箱里面的,GADS中沒有。需要把GATBX添加到MATLAB搜索路徑之下。先將 GATBx復(fù)制到 MATLAB安裝目錄下的toolbox 下然后打開MATLAB 然后 FILE ->SET PATH 選 ADD FOLDER 選擇你剛才復(fù)制的那個(gè)文件夾就OK了如果你的工具箱中有很多子目錄的話,選擇 ADD WITH SUBFOLDER 之后的操作和上面一樣了... 在matlab中添加新的工具箱首先說說添加到matlab搜索路徑好處:1 對(duì) n——你只需要存儲(chǔ)一個(gè)副本,就可以在其他地方使用。具體來說,假設(shè)你在數(shù)據(jù)盤D上新建了兩個(gè)目錄abc和def,這兩個(gè)工程(每個(gè)目錄下的所有程序相應(yīng)地稱為一個(gè)工程)都需要調(diào)用同一個(gè)(些)函數(shù)(簡稱工具箱),這時(shí)候,如果你沒有把該工具箱添加到matlab的搜索路徑下,則需要分別把工具箱中所有用到的文件都復(fù)制到目錄abc和def下才能正確運(yùn)行。這顯然浪費(fèi)空間,所以,matlab提供了一個(gè)搜索路徑(默認(rèn)在matlab安裝目錄下的toolbox中),只要把工具箱對(duì)應(yīng)的整個(gè)文件夾復(fù)制到搜索路徑對(duì)應(yīng)的目錄下,并且通知matlab一聲(把該路徑正確添加到搜索路徑中),就可以在abc和def中使用這個(gè)工具箱了(即無論你的工程文件在哪個(gè)目錄(有效的目錄)下都可以訪問這個(gè)工具箱中的函數(shù))。下面就以matlab安裝目錄下的toolbox目錄作為默認(rèn)的添加路徑進(jìn)行詳細(xì)說明。1. 如何添加工具箱?以下是添加工具箱的方法:(論壇很多人轉(zhuǎn)載過,這里就不作區(qū)分了,下面的舉例也一樣)如果是Matlab安裝光盤上的工具箱,重新執(zhí)行安裝程序,選中即可。如果是單獨(dú)下載的工具箱,則需要把新的工具箱(以下假設(shè)工具箱名字為svm)解壓到toolbox目錄下,然后用addpath或者pathtool把該工具箱的路徑添加到matlab的搜索路徑中,最后用which newtoolbox_command.m來檢驗(yàn)是否可以訪問。如果能夠顯示新設(shè)置的路徑,則表明該工具箱可以使用了。具體請(qǐng)看工具箱自己代的README文件。1.1 舉例:要添加的工具箱為svm,則解壓后,里邊有一個(gè)目錄svm,假設(shè)matlab安裝在D:\MATLAB6p5,將svm目錄拷貝至D:\MATLAB6p5\toolbox,然后運(yùn)行matlab,在命令窗口輸入addpath ’D:\MATLAB6p5\toolbox\svm’回車,來添加路徑。然后在svm目錄下,任意找一個(gè)m文件,以svcinfo.m為例,在命令窗口中輸入which svcinfo.m。如果顯示出該文件路徑,如 D:\MATLAB6p5\toolbox\svm\svcinfo.m,則安裝成功,當(dāng)然也可以在命令窗口輸入path來查看。上面的說明和例子基本上介紹了在matlab中如何添加工具箱,下面是其他補(bǔ)充:1.2 添加方式總結(jié):事實(shí)上,有兩種添加工具箱到matlab搜索路徑的方法:其一是用代碼,其二是用界面。其實(shí)無論用哪種方法,都是修改pathdef.m這個(gè)文件,閣下如果是高手,可以直接打開該文件修改,呵呵,對(duì)此這里不作討論。1.2.1 代碼方式:1.2.1.1 適用于添加下載的工具箱(別人的):在命令窗口輸入addpath D:\MATLAB6p5\toolbox\svm 或者addpath(‘D:\MATLAB6p5\toolbox\svm’);但是這種方法只能添加svm目錄,如果該目錄下有其他子文件夾,并且運(yùn)行時(shí)候“隱式”調(diào)用到這些子文件夾(例如假設(shè)svm目錄下存在子文件夾matdata,該子文件夾下有l(wèi)ogo.mat這個(gè)文件,且在m文件代碼中使用了諸如 load logo 這樣的句子,即沒有顯式給出logo.mat的具體路徑,則稱為“隱式”),則不能正確訪問。因此,有必要在添加時(shí)使用以下語句把svm目錄下所有文件夾都添加到搜索路徑中:程序代碼addpath(genpath(D:\MATLAB6p5\toolbox\svm));另外,如果只使用以上代碼,則退出matlab后,新添加的路徑不會(huì)被保存下來,下次重新啟動(dòng)matlab后又需要重新添加??梢杂胹avepath來解決這個(gè)問題,即在命令窗口中使用 savepath 便可。不過保存路徑操作只對(duì)matlab 2006a、2006b有效(應(yīng)該對(duì)版本7.0以上的都有效,因沒有測試,所以不敢肯定),對(duì)6.5版本的matlab無效(該版本沒有savepath這個(gè)命令)。1.2.1.2 適用于添加自己的工具箱(即工具箱自己編寫,然后希望別人下載后當(dāng)運(yùn)行主文件時(shí)自動(dòng)把路徑添加到matlab搜索路徑中):在主文件中加入如下代碼;程序代碼sCurrPath = fileparts(mfilename('fullpath'));addpath(genpath(sCurrPath)); %如果該工具箱沒有其他子目錄,則可以不需要用genpathsavepath; %這句可根據(jù)各人需要自行選擇,相信上一節(jié)的解釋已經(jīng)很清楚。1.2.2 界面方式:首先把主界面調(diào)出來,有兩種方式,一種是在命令窗口輸入pathtool,另一種是在matlab菜單調(diào)用(File -> Set Path…)。打開主界面后,相信不用太多解釋了。Add Folder… 或者 Add with subfolders… 就可以了,添加完畢后,如果需要保存該路徑,則在close前save一下就可以了。這種方式的好處是如果路徑有問題,matlab會(huì)馬上報(bào)錯(cuò),告訴用戶添加失敗。2 工具箱添加失?。?.1 work目錄和toolbox目錄問題:你當(dāng)然可以單獨(dú)把一個(gè)或多個(gè)文件(不含文件夾)放在work目錄下來實(shí)現(xiàn)“1對(duì)n”,因?yàn)閣ork目錄是其中一個(gè)matlab默認(rèn)的搜索路徑,但顯然不能包含文件夾,如果包含文件夾,則同樣需要把該文件夾添加到搜索路徑中。相反,你不能單獨(dú)把一個(gè)或多個(gè)文件(不含文件夾)放在toolbox目錄下來實(shí)現(xiàn)“1對(duì)n”,因?yàn)閠oolbox這個(gè)目錄并非matlab的一個(gè)默認(rèn)搜索路徑,除非你把toolbox文件夾添加到搜索路徑中。2.2 由于路徑名稱而導(dǎo)致添加失敗的總結(jié):2.2.1 路徑存在空格:錯(cuò)誤:addpath C:\Program Files\MATLAB\R2006b\toolbox\finity正確:addpath(‘C:\Program Files\MATLAB\R2006b\toolbox\finity’) 或者使用界面方式添加說明:在6.5版本的matlab不推薦使用帶空格的路徑,因?yàn)閙atlab6.5的安裝路徑是不允許有空格的,因此不曉得帶空格的工具箱路徑會(huì)出現(xiàn)什么問題。7.0以上應(yīng)該沒有問題。界面方式則估計(jì)沒有問題,有問題matlab會(huì)自動(dòng)報(bào)錯(cuò)的。2.2.2 路徑存在中文:用addpath和界面方式均可以成功添加,但不推薦,最好使用英文路徑。2.2.3 路徑存在“@”字符:均不成功,不要使用“@”字符小結(jié):出現(xiàn)其他與添加相關(guān)的錯(cuò)誤時(shí),用標(biāo)準(zhǔn)的路徑和文件名試試吧。3 正確添加了工具箱,但運(yùn)行調(diào)用時(shí)出錯(cuò):3.1 版本問題:對(duì)于工具箱檢測到matlab版本不兼容的問題,先引用一下happy教授的回復(fù):=====================happy================================這個(gè)是有用的,估計(jì)是作者考慮到隨著matlab的升級(jí)會(huì)出現(xiàn)不兼容的問題,因此加了類似的設(shè)置error('unsupported matlab version. please send an email.');以提示大家。從這一設(shè)置上看4.x和5.x版本的是完全沒有問題的,之后的版本可能會(huì)出現(xiàn)問題,是否真的會(huì)出現(xiàn)需要進(jìn)行測試=========================================================我也遇到過這類問題(如3.3節(jié)提到的spm5,下載得到的文件如果遇到2006版本的matlab則無法成功運(yùn)行),但不是matlab的直接回復(fù)說“版本不支持”,而是普通的語法出錯(cuò)。我的經(jīng)驗(yàn)是根據(jù)錯(cuò)誤提示調(diào)試一下,看看問題出在哪里,然后再對(duì)程序作相應(yīng)修改。例如在我的問題中,由于不支持最新的版本,所以2006a和2006b版本分別用下面的語句進(jìn)行檢查:strcmp(version('-release'),'2006a') 和 strcmp(version('-release'),'2006b')。3.2 程序中其他語法錯(cuò)誤:估計(jì)部分語法不兼容,例如7.0版本以上的matlab可以使用&&、||、@(x)等等之類的符號(hào),但是在6.5版本下無效,這種錯(cuò)誤也需要自己手動(dòng)修改一下代碼。3.3 工具箱中的函數(shù)重名問題:Happy教授也提到過,除了改名,沒有太好的辦法。但是如果改的地方不止一個(gè),例如遇到該文件進(jìn)行了多次的自我調(diào)用(一個(gè)典型例子是以switch 和case語句進(jìn)行區(qū)分不同的操作),或者其他文件存在對(duì)該文件的調(diào)用時(shí),這是個(gè)很頭痛的事情。根據(jù)我的經(jīng)驗(yàn),也沒有找到太好的解決辦法。以我所用的兩個(gè)工具箱為例,它們的文件夾名字不同(一個(gè)是spm2,一個(gè)是spm5),但是里面的主m文件名字都一樣,為spm.m,如果兩個(gè)工具箱同處于matlab的搜索路徑中,會(huì)導(dǎo)致其中一個(gè)工具箱失效,更別說兩者之間通過切換來進(jìn)行調(diào)用了。我一般的解決方法是安裝兩個(gè)matlab,例如一個(gè)是6.5版,一個(gè)是2006版,把兩個(gè)工具箱分別添加到不同的matlab中,這樣就可以啟動(dòng)不同版本的matlab使用不同版本的工具箱了,呵呵,算是一個(gè)補(bǔ)救的方法吧。3.4 找不到m文件的問題:如果你已經(jīng)把工具箱正確添加到搜索路徑下,這種情況一般不會(huì)發(fā)生。也就是說,通過“文件夾copy -> 運(yùn)行matlab ->添加路徑”步驟后,該文件夾下所有文件應(yīng)該都可以訪問到。但是,當(dāng)你對(duì)該文件夾下的m文件更新(包括修改和新增)了以后,此時(shí)如果你不重啟matlab,則可能會(huì)出現(xiàn)找不到m文件的問題(特別是該工具箱中的文件沒有依賴關(guān)系,它們只是被放在一起方便調(diào)用,當(dāng)你新增一個(gè)m文件到該文件夾下而不重啟matlab的時(shí)候,會(huì)造成這一新增m文件訪問失?。?。解決這個(gè)問題的方法之一顯然是重啟matlab,如果你不想重啟,也可用第二個(gè)方法:在命令窗口輸入: rehash toolbox ,“強(qiáng)制”matlab刷新toolbox目錄下的所有文件,這樣就可以正確訪問了。
如何在matlab中加載工具箱
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Matlab工具箱通用安裝方法 一、EMD工具箱安裝方法 1.下載emd工具箱:地址//download.csdn...
- MATLAB用來做機(jī)械臂的一些計(jì)算,找來一些demo還是跑不起來,就只能自己研究下怎么用 首先你需要這個(gè)玩意Rob...
- 一、系統(tǒng)環(huán)境 Windows 10 64bit(10586) MATLAB R2010a(Version 7.10...
- 最近需要使用支持向量機(jī),要用到libsvm這個(gè)工具箱,中間遇到不少問題?,F(xiàn)在將整個(gè)的安裝流程寫在下面,大家遇到問題...
- 今天青石的票圈出鏡率最高的,莫過于張藝謀的新片終于定檔了。 一張滿溢著水墨風(fēng)的海報(bào)一次次的出現(xiàn)在票圈里,也就是老謀...