1

在我正在工作的目录中,我有很多文件file1 file2 file3等。我事先不知道文件的名称,但我知道它们是唯一以 开头的文件A,例如A*.txt. 如何将数组中的文件名传递给 MATLAB?

4

3 回答 3

3

只需使用

files=dir('./A*.txt')

files 是一个结构,因此您可以使用

files(Index).name

如果您想要一个易于使用的单元格数组中的所有文件名,请尝试

cellarray = {files(:).name}
于 2013-05-14T18:28:45.193 回答
1

这是一个简短的答案:

filenames = dir('A*')

这假设您要返回当前目录中以“A”开头的文件,但您可以根据需要构建此示例。

于 2013-05-14T18:23:38.237 回答
1

你的问题有点宽泛,所以我会做一些假设,即你不介意元胞数组并且文件具有特定的扩展名。话虽如此,如果您想以一般方式进行操作并且您知道扩展名,则可以执行以下操作:

编辑:鉴于您知道文件名的第一部分,您可以修改对dir函数的调用,以反映:

%have the part of the filename you know here, in your question that being 'A'
file_prefix = 'A';
file_path = pwd;
%this will get all of the .txt files. Put the extension you want here
file_names = dir(strcat(file_path,filesep,file_prefix,'*.txt'));  
fnames = cell(length(file_names), 1);
for i=1:length(file_names)
    fnames{i} = file_names(i).name; 
end

这将给出一个包含指定扩展名的所有文件名的字符串元胞数组,您可以将其传递给任何需要文件名的文件名。您可以通过指定路径将其概括为从任何目录获取文件名(而不是使用pwd,它获取当前目录的内容)

于 2013-05-14T18:23:06.560 回答