How to find all specified files in a specified path in Matlab?matlab 如何查找指定路径下的所有指定文件

35 次查看(过去 30 天)
Matlab 如何遍历所有文件下以及子文件中的模型文件(.mdl ,.slx)
How Matlab Traverses Model Files in All Files and Subfiles

采纳的回答

Xiaoning.Wang
Xiaoning.Wang 2024-12-13,1:35
可以查看两个help 文件
listing = dir('*.txt'); % 列出当前文件夹中所有的txt文件
listing = dir('*.txt'); % 返回当前文件夹下所有.txt文件的信息
listing = dir('**/*.txt'); % 返回当前文件夹及子文件夹中所有.txt文件的信息
映射出
listing1 = dir('Z:/model/**/*.slx');
listing2 = dir('Z:\model\**\*.slx');
如果你想查询两个不同格式文件的模型
listing = [dir('**\*.slx');dir('**\*.mdl')]

更多回答(2 个)

埃博拉酱
埃博拉酱 2024-12-13,1:43
如果你只需要文件名,可以用ls
ls *.mdl
ls *.slx

cui,xingxing
cui,xingxing 2024-12-13,3:58
你可以使用 dir 函数结合递归来遍历文件夹及其子文件夹中的所有 .mdl.slx 文件。以下是一个示例代码:
function files = findModels(directory)
% Initialize an empty cell array to store model file paths
files = {};
% Get a list of all files and folders in the specified directory
fileList = dir(directory);
% Loop through the files/folders
for i = 1:length(fileList)
% Skip the '.' and '..' entries
if strcmp(fileList(i).name, '.') || strcmp(fileList(i).name, '..')
continue;
end
% Get the full path of the current file/folder
fullPath = fullfile(directory, fileList(i).name);
% If it's a folder, recurse into it
if fileList(i).isdir
files = [files, findModels(fullPath)]; % Recursion
else
% If it's a model file, add it to the list
if endsWith(fileList(i).name, {'.mdl', '.slx'})
files = [files, fullPath];
end
end
end
end
调用 findModels 函数并传入目录路径,函数将返回该目录及所有子目录中 .mdl.slx 文件的路径。

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

产品


版本

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by