2013-10-08 70 views
1

我正在編寫一個Matlab代碼,並希望從不同的桌面訪問它,所以我將所有內容保存在保管箱中。我想知道是否有一種方法可以告訴Matlab當前路徑,而不用每次使用不同的機器時更改代碼。例如,下面的代碼行在我的代碼中,但是我想讓它在每臺計算機上使用更通用。我怎樣才能告訴MATLAB我的文件的正確路徑?如何將當前目錄分配到保管箱文件夾

[num,txt,raw]= xlsread('C:\Users\Zahra\Documents\dropbox \data.xlsx'); 
+0

哪裏存儲的數據相對於MATLAB腳本存儲的地方?如果他們在同一個文件夾中,可以使用'xlsread('data.xlsx')',它應該可以在每臺計算機上運行 – darthbith

回答

1

的Dropbox文件夾是base64-編碼在位於Windows的AppData文件夾中的文件夾中的host.db文件中。 我不是很舒服,如果它是跨平臺,但適用於我的系統和我的保管箱。

%http://www.mathworks.com/matlabcentral/fileexchange/15886-get-application-data-directory/content/getapplicationdatadir.m 
%http://www.mathworks.com/matlabcentral/fileexchange/12907-xmliotools/content/base64decode.m 
f = getapplicationdatadir('dropbox', 0, 0); 
hostdb = fopen([f '/host.db']); 
%skip line 
fgetl(hostdb); 
s = fgetl(hostdb); 
path = sprintf('%s', base64decode(s)); 
cd(path); 
1

您可以使用一個單元陣列包含你的Dropbox的路徑,並與isdir嵌入cellfun對其進行測試:

dropbox_path = {'/Users/x/Dropbox/'; 
    '/Users/xx/Dropbox/'; 
    '/Users/xxx/Dropbox/'}; 

dropbox_path = dropbox_path{cellfun(@isdir,dropbox_path)} 

然後閱讀您的文件

[num,txt,raw]= xlsread([dropbox_path 'data.xlsx']); 
相關問題