poster
2019-12-10, 20:41
如何将两个数据列合并到一个文件中。这些代码应产生一个新文件,其中包含2列。尽管它产生2列,但是数据不正确,因为先写入a所有数据,然后写入数据duration
fid=fopen('data1.txt'); A =textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f'); % read a txt file in = cell2mat(A); %change to matrix fclose(fid); index = find(in(2:end,2) == in(1:end-1,2)) + 1; %condition 1 duration(index)= in(index,4) - in(index-1,4); a(index)=in(index,2); fid = fopen('test.txt','wt'); format short g; fprintf(fid,'%g\t%g\n',a,duration); fclose(fid); 编辑:输出格式如下所示-
318684 24 % 318684 I don't know where this number come from, not from the input 24 24 % this is the a output 24 24 1.1 1.08 % this is the duration output 2.1 0.77 预期的输出是
24 1.1 24 1.08 24 2.1 24 0.77 1.3 1.8
回答:
您需要修复fprintf行:
fprintf(fid,'%g\t%g\n',[a(:),duration(:)]');
更多&回答... (https://stackoverflow.com/questions/3088995)
fid=fopen('data1.txt'); A =textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f'); % read a txt file in = cell2mat(A); %change to matrix fclose(fid); index = find(in(2:end,2) == in(1:end-1,2)) + 1; %condition 1 duration(index)= in(index,4) - in(index-1,4); a(index)=in(index,2); fid = fopen('test.txt','wt'); format short g; fprintf(fid,'%g\t%g\n',a,duration); fclose(fid); 编辑:输出格式如下所示-
318684 24 % 318684 I don't know where this number come from, not from the input 24 24 % this is the a output 24 24 1.1 1.08 % this is the duration output 2.1 0.77 预期的输出是
24 1.1 24 1.08 24 2.1 24 0.77 1.3 1.8
回答:
您需要修复fprintf行:
fprintf(fid,'%g\t%g\n',[a(:),duration(:)]');
更多&回答... (https://stackoverflow.com/questions/3088995)