在Matlab中使用strrep将1行字符串替换为2行字符串
我有一个文本文件如下 我想换一条高亮度的线,如下所示在Matlab中使用strrep将1行字符串替换为2行字符串,matlab,Matlab,我有一个文本文件如下 我想换一条高亮度的线,如下所示 fid=fopen('a.bdf'); A=fread(fid,'uint8=>char')'; B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1']); fid=fopen('a.bdf'); A=fread(fid,'uint8=>c
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1']);
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1
PSHELL 2 1 2. 1 1']);
我可以用下面的'strep'函数替换一行
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1']);
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1
PSHELL 2 1 2. 1 1']);
但是,我不知道如何使用strep将一行字符串替换为两行字符串
我只是复制并粘贴了一份,如下所示
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1']);
fid=fopen('a.bdf');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1
PSHELL 2 1 2. 1 1']);
但是,它不起作用
如何使用“strrep”替换此字符串行 向新的子字符串添加换行符'\r\n'(可能因操作系统而异),如
B=strrep(A,'PSHELL 1 1 15. 1 1',['PSHELL 1 1 20. 1 1\r\nPSHELL 2 1 2. 1 1']);
请记住,当您要写入文件时,必须使用
fid=fopen('a.bdf','r+');
使用这种方法,您必须用B中的新内容覆盖原始文件
编辑:完整代码
fid=fopen('a.bdf','r+');
A=fread(fid,'uint8=>char')';
B=strrep(A,'PSHELL 1 1 15. 1 1','PSHELL 1 1 20. 1 1\r\nPSHELL 2 1 2. 1 1');
frewind(fid);
fprintf(fid,B);
fclose(fid);
@김갑수 我使用了
frewind(fid);fwrite(fid,B);fclose(fid)代码>,这对我来说很有吸引力。我已经添加了代码。我使用了fprintf
而不是fwrite
。对不起,我犯了那个错误。