代码示例
先粘上一部分代码作为示例,代码内容是我在做随机结构分析时为了并行运算创建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
命令会将新的内容写到旧的内容下面。