MATLAB文件写入处理

代码示例

先粘上一部分代码作为示例,代码内容是我在做随机结构分析时为了并行运算创建Opensees计算文件的Matlab代码:

clear
clc
a=textread('wall11.tcl','%s','delimiter','\n','whitespace','');
n=length(a);
% delete('hehehe.tcl');
% save('hehehe.tcl', 'a');
% dlmwrite('hehehe.tcl',a);

for j=1:8
  a{13,:}=['for {set mc ',num2str((j-1)*125*3+1),'} {$mc<=',num2str(j\*125\*3),'} {incr mc 1} {'];
  filename=strcat('E:\[Data]\opensees\wall1',num2str(j),'.tcl');
  delete(filename);
  fid=fopen(filename,'a');
  for i=1:n
    fprintf(fid,'%s',a{i,:});
    fprintf(fid,'\n');
  end

end

流程可简单描述如下:

  • 读取需要改写的文件,使用命令textread
  • 此时读取进来的内容以Cell的形式储存,是一个一列的Cell,每一行为一个字符串;
  • 将需要修改的行整行进行替换(直接赋值);
  • 最后将修改好的内容重新写入文件,注意,需要先把原始文件删除,否则直接写入MATLAB的fprintf命令会将新的内容写到旧的内容下面
    原文作者:hjrself
    原文地址: https://www.jianshu.com/p/a32731dbad7f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞