Matlab fullfile使用详解

发布时间:2023-05-22

Matlab fullfile 函数详解

Matlab 作为一个倍受欢迎的科学计算软件,拥有大量的内置函数来支持开发者的工作。Fullfile 函数就是其中之一。本文将从多个方面详细介绍 fullfile 函数,以帮助读者更好地利用它完成开发任务。

一、fullfile 函数概述

Fullfile 函数是 Matlab 中的一个内置函数,用于构造包含文件名、文件夹名或文件路径的字符串。该函数将多个输入参数合并成一个完整的路径,同时自动处理不同操作系统下路径分隔符的差异,极大地方便了路径的处理。

二、常见用法示例

1. 构造文件路径

使用 fullfile 函数可以简单地构造一个包含文件路径的字符串,例如:

loadPath = fullfile('data', 'sample.mat');
% 生成的路径为 'data/sample.mat'

可以看出,当需要在多个路径字符串中添加路径分隔符时,fullfile 函数会自动根据当前操作系统选择相应的路径分隔符。不仅如此,该函数还可以处理 Windows 系统与 Unix 或 Mac 系统路径分隔符不同的问题。

2. 构造文件夹路径

Fullfile 不仅可以构造文件路径,还可以用于构造文件夹路径,例如:

folderPath = fullfile('home', 'user', 'my_project');
% 生成的路径为 'home/user/my_project'

同样地,fullfile 函数会自动根据当前操作系统选择相应的路径分隔符。

3. 处理绝对路径

Fullfile 函数可以处理绝对路径,例如:

absPath = fullfile('/', 'home', 'user', 'my_project'); 
% 生成的路径为 '/home/user/my_project'

这里的 “/” 表示 Unix 系统根目录,Windows 下操作处理绝对路径需要改为 "C:\" 等。无论是在 Unix 上还是在 Windows 上,fullfile 函数都可以正常工作,极大地简化了代码编写难度。

4. 处理多个输入参数

Fullfile 函数支持输入多个参数,可以自动将它们合并成一个完整的路径。例如:

path = fullfile('D:', 'data', 'sample.mat', '..');
% 生成的路径为 'D:\data\'

在本例中,".." 是父文件夹的相对路径,fullfile 函数自动指向了父文件夹路径 “D:\data”。

三、应用实例

1. 打开文件对话框

文件对话框可以让用户选择自己需要的文件路径。使用 fullfile 函数可以更方便的获取用户所选择的文件路径。

[filename, pathname] = uigetfile({'*.jpg;*.jpeg;*.png;*.bmp', '支持格式(*.jpg,*.jpeg,*.png,*.bmp)'},'请选取一个需要读取的图像');
imgPath = fullfile(pathname, filename);
figure, imshow(imgPath);

在这个例子中,fullfile 函数帮助我们合并了文件路径和文件名。其中 pathname 是用户所选择的文件夹路径,filename 是所选文件的名字。

2. 批量处理文件

我们可以使用 fullfile 函数,写一个函数来批量对一组文件进行处理。

function process_files(file_dir)
    % 列出所有文件
    files = dir(fullfile(file_dir, '*.jpg'));
    for i = 1:length(files)
        % 获取当前文件的路径
        filepath = fullfile(files(i).folder, files(i).name);
        % 读取文件并处理
        img = imread(filepath);
        img = imresize(img, 0.5);
        % 保存文件
        [~, name, ext] = fileparts(filepath);
        savepath = fullfile(file_dir, [name '_processed' ext]);
        imwrite(img, savepath);
    end
end

此函数中,fullfile 函数用于构建当前文件的绝对路径,并且自动适配操作系统,无需手动输入路径分隔符。

四、总结

Fullfile 函数作为 Matlab 内置函数之一,是非常实用的函数之一。无论是用于构造文件路径,还是文件夹路径的构造,处理绝对路径,或者是快速获取用户所选文件的路径,fullfile 函数都可以极大地提升代码的开发效率。