如何将文件名传递给MATLAB?

时间:2013-05-14 18:13:52

标签: file matlab variables

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

3 个答案:

答案 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”开头的当前目录中的文件,您可以根据需要构建此示例。