登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
干货—matlab读取txt,实用教程(合并file2到file1)
file1 内容如下:file2和file1类似,把file2相同时间的内容放到file1对应时间下!
file2 :
而且实现对应时间上的行数相加
:12+16 最终结果:
matlab:代码
clear;clc;close all; file1='file1.txt'; file2='file2.txt'; %% read file1 fid=fopen(file1,'r');%open file eng1='000000000';% 用于储存.txt的变量,初始值定为字符串,可用于储存.txt的数据; row=0;%row at start is zero.
。。。 fclose(fid);%close file ;读取完毕; %% read file2 fid=fopen(file2,'r');%open file eng2='000000000';% 用于储存.txt的变量,初始值定为字符串,可用于储存.txt的数据; row_2=0;%row at start is zero. while ~feof(fid) %if eixt file ,then run row_2=row_2+1; % read file according row a_2=fgetl(fid);% data give a; num_2=length(a_2);% 每一行多长 eng2(row_2,1:num_2)=a_2;% 列数循环读取,放进每一行中; end fclose(fid);%close file ;读取完毕; %% file1 fi_1_j=[];% 用于计算一个.txt内部台风开始的行数; for ty_i=1:length(eng1(:,1))% 行循环 read_a=eng1(ty_i,1);% 读取行的第一个字符, if read_a=='>'% 判断是否是一个>的开始,你可以仔细观察,一个'>' fi_1_j=[fi_1_j ty_i]; end end fi_1_j_new=fi_1_j(2:end); %% file1 fi_2_j=[];% 用于计算一个.txt内部台风开始的行数; for ty_i=1:length(eng2(:,1))% 行循环 read_a=eng2(ty_i,1);% 读取行的第一个字符, if read_a=='>'% 判断是否是一个>的开始,你可以仔细观察,一个'>' fi_2_j=[fi_2_j ty_i]; end end fi_2_j_new=fi_2_j(2:end); %头文件 fi_start=eng1(1:fi_1_j(1),:); % for i=1:length(fi_1_j_new) fi_row_fi(i)=str2num(eng1(fi_1_j_new(i),34:35))+str2num(eng2(fi_2_j_new(i),34:35)); end % for i=1:length(fi_1_j_new) fi_row(i,:)=[num2str(eng1(fi_1_j_new(i),1:33)),num2str(fi_row_fi(i)),num2str(eng1(fi_1_j_new(i),36:end))]; end %% fi_1_j_new=[fi_1_j_new length(eng1)+1]; fi_2_j_new=[fi_2_j_new length(eng2)+1]; fid=fopen('file.txt','wt'); % 先写入头文件 [m,~]=size(fi_start); for i=1:m fprintf(fid,'%s\n',fi_start(i,:)); end % 然后按照file1,file2顺序写入file中; for ii=1:length(fi_row(:,1)) fprintf(fid,'%s\n', fi_row(ii,:));%时间; % 输入file1的内容;然后接着输入file2的内容; content=eng1(fi_1_j_new(ii)+1:fi_1_j_new(ii+1)-1,:); [m,~]=size(content); for i=1:m fprintf(fid,'%s\n',content(i,:)); end % 输入file1的内容;然后接着输入file2的内容; content=eng2(fi_2_j_new(ii)+1:fi_2_j_new(ii+1)-1,:); [m,~]=size(content); for i=1:m fprintf(fid,'%s\n',content(i,:)); end end fclose(fid)%关闭文件; %
|