尝试访问当前matlab文件夹的子文件夹中的文件时出错

时间:2019-01-01 11:09:11

标签: matlab path

我正在尝试读取一个Excel文件,该文件是我当前Matlab文件夹的子文件夹。我正在使用以下代码:

readtable('\参考数据\ Aircraft OOP.xlsx','Sheet','formerge');

“参考数据”是我当前Matlab文件夹中的一个文件夹。 但是在运行代码时,我收到以下错误消息。

无法打开文件“ C:\参考数据\ Aircraft OOP.xlsx”作为工作簿。检查文件是否存在,具有读取访问权限并且文件是否为 有效的电子表格文件。

如您所见,Matlab假定“参考数据”目录位于C:/中。

我可以通过简单地使用整个路径来解决此问题,但是此代码将由不同的用户使用,如果使用了整个路径,则每个用户在运行代码之前都必须编辑以上行。

所以我想知道如何将当前文件夹设置为主文件夹而不是C:/。

2 个答案:

答案 0 :(得分:2)

字符串

'\Reference data\Aircraft OOP.xlsx'

表示绝对路径,因为它以驱动器的根目录\开头。

要指定相对路径,请删除反斜杠:

'Reference data\Aircraft OOP.xlsx'

将相对于当前目录评估此路径。

答案 1 :(得分:0)

在转到解决方案之前,请检查以下几点。

  • 检查包含要读取的excel文件的文件夹, 是否确实存在于Matlab的工作区(Matlab的当前文件夹)中?如果没有,则将文件夹(包含excel文件)移动到Matlab的工作区(Matlab的当前文件夹)。
  • 检查文件夹名称和文件名的拼写。

如果一切正常,请转到下面的解决方案来解决您遇到的问题。

使用以下代码行构建完整的文件路径。

fullfilePath = fullfile(pwd, '\Reference data\Aircraft OOP.xlsx');
上面代码中的

pwd是访问Matlab当前工作目录路径的命令。

现在,您可以使用readtable命令读取文件。

readtable(fullfilePath,'Sheet','formerge');

或者,您也可以使用以下代码行正确读取excel文件。

readtable('.\Reference data\Aircraft OOP.xlsx','Sheet','formerge');

文件路径开头的点(。)告诉Matlab在Matlab当前工作目录中向上搜索文件夹。