我正在編寫一個Matlab代碼,並希望從不同的桌面訪問它,所以我將所有內容保存在保管箱中。我想知道是否有一種方法可以告訴Matlab當前路徑,而不用每次使用不同的機器時更改代碼。例如,下面的代碼行在我的代碼中,但是我想讓它在每臺計算機上使用更通用。我怎樣才能告訴MATLAB我的文件的正確路徑?如何將當前目錄分配到保管箱文件夾
[num,txt,raw]= xlsread('C:\Users\Zahra\Documents\dropbox \data.xlsx');
我正在編寫一個Matlab代碼,並希望從不同的桌面訪問它,所以我將所有內容保存在保管箱中。我想知道是否有一種方法可以告訴Matlab當前路徑,而不用每次使用不同的機器時更改代碼。例如,下面的代碼行在我的代碼中,但是我想讓它在每臺計算機上使用更通用。我怎樣才能告訴MATLAB我的文件的正確路徑?如何將當前目錄分配到保管箱文件夾
[num,txt,raw]= xlsread('C:\Users\Zahra\Documents\dropbox \data.xlsx');
的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);
您可以使用一個單元陣列包含你的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']);
哪裏存儲的數據相對於MATLAB腳本存儲的地方?如果他們在同一個文件夾中,可以使用'xlsread('data.xlsx')',它應該可以在每臺計算機上運行 – darthbith