用matlab替换文本文件中的某个字符串
本帖最后由 ljelly 于 2009-9-14 09:36 编辑有一个文本文件test.txt,大约有1万行,每行有数字,有字符
其中的第100行和101行的内容是:
a b n c m tm tr epso
0.0028960.0020340.3500000.0110001.340000
现在需要将第101行的 0.002896 替换成 0.003047,怎么操作?我搜索了一天,也没有找到解决办法。 差不多1万行的文件中你只想替换第100行的内容吗?如果是的话,任何一个好一点的文本编辑器都能做到。如果不是的话,那么需要替换的内容有固定的模式吗? 本帖最后由 风天小畜 于 2009-9-14 09:28 编辑
伪代码
打开文件
fid=fopen('myfile.txt');
把文件指针跳到100行末尾,因为不知文件具体格式,不好用 fseek
for k=1:1:100
tline = fgetl(fid);
end
保存 101行的指针
position = ftell(fid);
下面,只需要用 fgetl读取字符,或者 fscanf 格式化读取 第101行内容。
读取了内容,对该内容进行文本替换。替换后,假定为 new_Str
指针跳回到101行行首
fseek(fid, position , ''bof'');
接着,用 fwrite或者fprintf 函数,写入 new_str
最后
fclose(fid); 如果情况复杂,不确定替换哪一行,可以使用正则表达式,regexprep等函数。 这类文件的预处理用Matlab不合适,PERL可能是最好的
如果不复杂,用编辑器替换最方便。
页:
[1]