2012-03-16 92 views
1

我最近一直在使用Matlab。我的問題源於我幾個月的使用情況,而且我似乎無法解決這個問題。我有一個外部SVM工具箱(OSU-SVM),我想與我的項目進行交互。當我手動添加工具箱的路徑(右鍵單擊 - >添加到路徑 - >選定文件夾和子文件夾)時,我可以使整個系統正常工作。我想要做的是將文件夾添加到腳本中。我嘗試了「addpath」命令,但出於某種原因,我無法找到相對於運行命令的m文件(腳本)的庫。以下是代碼示例:Matlab和addpath

% Add OSU SVM system 
addpath(genpath('./osu-svm/')); 

究其原因,我想補充使用相對文件夾到M-文件的路徑是,代碼需要在不同的環境中運行,不會安裝工具箱。代碼也將在與我正在開發的操作系統不同的操作系統中執行。也就是說,我正在運行Windows Matlab來開發代碼並需要在Linux機器上運行完成的系統。運行我的文件的過程需要儘可能無痛苦,並且不需要用戶輸入太多內容。這就是爲什麼我特意試圖避免手動添加路徑。

在旁註中,當我希望使用「uigetfile」使用相對路徑時,會發生類似的問題。我相信我缺少的東西會幫助我同時解決這兩個問題。任何幫助將不勝感激。

回答

2

而不是「./osu-svm/」單獨使用

fullfile('.','osu-svm') 

它不爲你工作在Windows上的原因是,您使用正斜槓分隔文件。完整文件將爲每個操作系統創建一個包含正確文件分隔符的文件字符串。

在MATLAB文檔中的genpath示例還使用完整文件 http://www.mathworks.co.uk/help/techdoc/ref/genpath.html

此外, ''有點不必要,因爲它只是意味着「相對於當前目錄」,並且可以被排除在命令之外。也許你的意思是一個目錄?

'..' 

???

+0

感謝這工作。我習慣使用「。」明確指出當前文件夾正在被使用。 – user901898 2012-03-25 14:08:14