我有以下代码,其中我试图找到所有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工作正常,我得到了所需的结果。但是当我尝试放入循环时,它给了我error.am我使用textread错误? 感谢
答案 0 :(得分:3)
是的,您错误地使用了textread
。
textread
的第一个参数必须是包含文件名的字符串。您已将其指定为'data_m_files'
,因此MATLAB会查找名为“data_m_files”的文件,该文件显然不存在。
您应该传递data_m_files
的值,因此请从'data_m_files'
中移除引号,如下所示:
C = textread(data_m_files, '%s', 'delimiter', '\n');
这应该有用。