我正在编写一个 Matlab 代码,并希望可以从不同的桌面访问它,所以我将所有内容都保存在 Dropbox 中。我想知道是否有一种方法可以在每次使用不同的机器时告诉 Matlab 当前路径而无需更改代码。例如,以下行在我的代码中,但我想让它更通用,以便在每台计算机上使用。如何告诉 MATLAB 我的文件的正确路径?
[num,txt,raw]= xlsread('C:\Users\Zahra\Documents\dropbox \data.xlsx');
您可以使用包含 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']);
Dropbox 文件夹在位于 Windows 文件夹中的文件夹中的 host.db 文件中进行 base64 编码AppData
。我不确定它是否是跨平台的,但可以在我的系统和我的保管箱上工作。
%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);