conlor 发表于 2009-9-13 23:20:33

用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,怎么操作?我搜索了一天,也没有找到解决办法。

taohe 发表于 2009-9-13 23:51:45

差不多1万行的文件中你只想替换第100行的内容吗?如果是的话,任何一个好一点的文本编辑器都能做到。如果不是的话,那么需要替换的内容有固定的模式吗?

风天小畜 发表于 2009-9-14 09:26:06

本帖最后由 风天小畜 于 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);

feynmand 发表于 2009-9-14 11:53:40

如果情况复杂,不确定替换哪一行,可以使用正则表达式,regexprep等函数。

echo_her 发表于 2009-9-14 21:49:22

这类文件的预处理用Matlab不合适,PERL可能是最好的
如果不复杂,用编辑器替换最方便。
页: [1]
查看完整版本: 用matlab替换文本文件中的某个字符串