我正在尝试编写脚本以从其他脚本文件中删除注释行。这就是我的尝试:
fid = fopen('correct_answer.m');
aline = {};
counter = 1;
while ~feof(fid)
aline{counter} = fgetl(fid);
if aline{counter}(1) == '%'
aline{counter} = '';
end
counter = counter + 1;
end
这是我得到的错误:
Attempted to access aline.%cell(1); index out of bounds because numel(aline.%cell)=0.
Error in hw2 (line 8)
if aline{counter}(1) == '%'
如果我在没有while循环的情况下运行它可以正常工作。这个怎么样? 此外,如果您碰巧知道一种更简单/有效的方法来删除也适用的注释行;)
答案 0 :(得分:0)
问题是你有时会读取空行,而你无法访问空行的第一个元素。另外,您可能在有效代码行的末尾有注释,此代码应该可以使用
fid = fopen('correct_answer.m');
aline = {};
counter = 1;
while ~feof(fid)
aline{counter} = fgetl(fid);
if ~isempty(aline{counter})
k = strfind(aline{counter}, '%');
aline{counter}(k:end) = '';
end
counter = counter + 1;
end