在我正在工作的目录中,我有很多文件file1 file2 file3
等。我事先不知道文件的名称,但我知道它们是唯一以{{1}开头的文件},例如A
。如何将数组中的文件名传递给MATLAB?
答案 0 :(得分:3)
只需使用
files=dir('./A*.txt')
文件是一种结构,因此您可以使用
访问文件名files(Index).name
如果您想在易于使用的细胞阵列中使用所有文件名,请尝试
cellarray = {files(:).name}
答案 1 :(得分: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
来获取当前目录的内容)来概括它以从任何目录中获取文件名。
答案 2 :(得分:1)
这是一个简短而简单的答案:
filenames = dir('A*')
这假设您要返回以“A”开头的当前目录中的文件,您可以根据需要构建此示例。