2013-05-14 49 views
0

在我工作的目錄中,我有很多文件file1 file2 file3等。我不知道文件的名稱,但是我知道它們是唯一以A開頭的文件,例如A*.txt。我怎樣才能將數組中的文件名傳遞給MATLAB?如何將文件名傳遞給MATLAB?

+0

您是否事先知道文件名?你想用文件名做什麼?將它們傳遞給一個函數? – Schorsch 2013-05-14 18:18:39

+0

如何使用字符串的單元格數組? – 2013-05-14 18:18:55

+0

@Schorsch我編輯了這篇文章。你問這個問題是對的。 – newzad 2013-05-14 18:23:18

回答

3

只需使用

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

文件是一個結構,這樣你就可以

files(Index).name 

存取權限的文件名,如果你想在一個易於使用的cellarray所有的文件名,嘗試

cellarray = {files(:).name} 
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,其獲取當前目錄的內容)

1

這裏有一個短期和簡單的答案從任何目錄中的文件名:

filenames = dir('A*')

這假定你想返回以「A」開頭的當前目錄下的文件,但你可以根據需要構建這個例子。

相關問題