1

我有以下代码,我试图在其中查找所有 data.m 文件并删除与 expr 匹配的字符串。

fileData = dir();  
m_file_idx = 1;     
filenames = {fileData.name};  
index = regexp(filenames,'\w*_data.m\w*','match') ;
inFiles = filenames(~cellfun(@isempty,index));    
i=1;
for idx = i : length(inFiles)        
    data_m_files=inFiles{i}; 
    disp(data_m_files)
    C = textread('data_m_files', '%s', 'delimiter', '\n');
    expr ='\.DataType[ =]+''auto''';  
 C = C(cellfun(@isempty, regexp(C, expr)));
    i=i+1;
end

我的输出是:

this_is_data.m

Error using textread (line 167)
File not found.

如果我通过手动输入 data_m_file 名称使用相同的代码,textread 工作正常,我得到了想要的结果。但是当我尝试放入循环时,它给了我错误。我使用 textread 是否不正确?谢谢

4

1 回答 1

3

是的,你使用textread不正确。

的第一个参数textread必须是包含文件名的字符串。您已将其指定为'data_m_files',因此 MATLAB 会查找名为“data_m_files”的文件,该文件显然不存在。

您应该传递 的值data_m_files,因此从 中删除引号'data_m_files',如下所示:

C = textread(data_m_files, '%s', 'delimiter', '\n');

这应该有效。

于 2013-01-08T16:03:21.263 回答