2015-02-05 57 views
0

我已經寫了一個Matlab腳本,位於遠程計算機的用戶目錄中。在這個腳本中,它應該變成一個離開根目錄的數據目錄。在我的腳本的Matlab代碼片段是:cd to root - 不能在Matlab腳本中工作

data_dir='/data/gcm/'; 
old_dir=cd(data_dir); 
% there's other code in here, then... 
cd(old_dir); 

內包含我的MATLAB程序(稱爲launch_WA)我使用調用腳本的目錄:

$ matlab -nodesktop -r "launch_WA;quit" 

此作品在我的本地機器上,並如果我將數據文件複製到我自己的用戶目錄下的目錄中,它可以在遠程機器上工作,但是它不會從根目錄切換到任何內容?

我查了數據目錄的訪問限制與統計:

drwxrwxr-- 

任何幫助將不勝感激!

+1

我相信'cd' inmatlab,你需要完整的路徑。因此,如果它是當前路徑的子文件夾,則需要cd(strct('C:\ potato',data_dir))或者cd(strct('pwd,data_dir))。 – 2015-02-05 16:55:36

回答

0

是不是說在cddocumentation你需要完整的路徑來訪問與CD。您可以使用相對路徑,在文件夾名稱前使用..\格式,如果您知道它是從當前文件夾開始的級別。如果你只使用/data/gcm/ Matlab只會查看當前文件夾。

因此,如果該文件夾是當前文件夾

cd(data_dir); 

裏面如果你知道它的確切位置

cd(strcat('C:\potato',data_dir)) 

如果你知道它是(如2)水平高達

cd(strcat('..\..\',data_dir)) 
+0

遠程機器運行的是Linux,所以數據目錄的完整路徑是'/ data/gcm /',因爲它不在根目錄中。我試圖用你的建議表示層數:'data_dir ='../../../data/gcm'但是Matlab仍然給我提供相同的錯誤;該名稱不存在或不是目錄。 @Ander – Alison 2015-02-06 14:52:48

+0

@Alison aaaah linux。在cd文檔中有一個小例子,建議您使用'〜\ dir'。你可能想要托盤,但如果它是一個Linux問題,我不能再幫忙了。 – 2015-02-06 15:38:21

+0

是的Linux。在我的本地(mac)上,我可以在這段代碼中使用'/ some_dir/off_root'從pwd進入目錄樹,這就是爲什麼我認爲它很奇怪的原因是相同的代碼(只是在遠程的新目錄中)工作。使用'〜/ dir'只會將我帶到我的usr主目錄,而不是root。無論如何感謝您的想法! @Ander – Alison 2015-02-06 16:04:14