1

我正在编写一个 Matlab 代码,并希望可以从不同的桌面访问它,所以我将所有内容都保存在 Dropbox 中。我想知道是否有一种方法可以在每次使用不同的机器时告诉 Matlab 当前路径而无需更改代码。例如,以下行在我的代码中,但我想让它更通用,以便在每台计算机上使用。如何告诉 MATLAB 我的文件的正确路径?

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

2 回答 2

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']);
于 2013-10-08T17:42:53.693 回答
1

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);
于 2013-10-08T17:45:29.503 回答