matlab 相对文件路径
时间: 2025-01-08 19:03:06 浏览: 5
### 如何在 MATLAB 中使用相对文件路径
#### 使用上上级目录
在 MATLAB 中,可以利用 `..` 来表示上级目录。如果想要访问上上级目录,则应采用 `../../` 的形式[^1]。
```matlab
% 访问当前工作区的上上级目录下的某个文件夹中的文件
filePath = '../../exampleFolder/exampleFile.txt';
fileID = fopen(filePath, 'r');
if fileID == -1
disp('无法打开文件');
else
fclose(fileID);
end
```
#### 读取 Excel 文件并处理路径
对于读取特定位置上的 Excel 数据而言,可借助 `xlsread` 函数完成操作,并通过相对路径定位目标文件所在的位置[^2]。
```matlab
% 假设有一个位于项目根目录下名为 data 的子文件夹内有 test.xlsx 文件
dataPath = './data/test.xlsx'; % . 表示当前目录
[sheetData, textData, rawData] = xlsread(dataPath);
disp(sheetData); % 显示读取的数据
```
需要注意的是,在某些版本之后,MathWorks 推荐使用更为现代的方式如 `readtable` 或者 `readmatrix` 替代 `xlsread` 进行表格类数据的操作:
```matlab
dataTable = readtable('./data/test.xlsx'); % 将 Excel 数据作为表结构导入
disp(dataTable{:, :}); % 展示整个表格的内容
```
#### 动态获取脚本所在的文件夹
有时可能希望基于运行代码的实际位置构建相对路径而不是依赖于工作空间设置。这时可以用到 `mfilename('fullpath')` 获取正在执行 m-file 完整路径的方法再进一步解析得到所需部分[^3]。
```matlab
currentScriptFullPath = mfilename('fullpath');
[currentDir, ~] = fileparts(currentScriptFullPath);
targetFilePath = fullfile(currentDir, '..', '..','anotherSubfolder', 'targetFile.csv');
% 加载 CSV 文件为例展示如何应用此路径
csvData = csvread(targetFilePath);
disp(csvData(:, :));
```
阅读全文