覆盖CSV文件中的特定列

时间:2018-08-10 02:20:51

标签: matlab csv file-io overwrite

我有一个现有的.csv文件-data.csv-带有下面显示的两列数据。

COL1           COL2
1/1/1991 00:00 65.4
1/1/1991 01:00 59.2

我需要使用dlmwritecsvwrite或什至fprintf打开此文件(data.csv),保留第一列而不删除它,只写一个新列覆盖同一文件中原始第二列的数据。

最终结果将在文件data.csv中包含2列数据:数据的第一列是原始列,第二列是主程序中计算所得的新覆盖数据。

最终结果:

COL1           COL2
1/1/1991 00:00 101.4
1/1/1991 01:00 96.3

用于写入/覆盖第二列的行偏移是row = 1,col = 1或第二行和第二列。

我尝试了xlswritecsvwritedlmwritefprintf,但结果各不相同。最接近的尝试是使用csvwrite,它将数据写入正确的行和文件偏移中,但是它删除了所有原始数据,包括数据的第一列!这是无法覆盖现有数据而无法按预期运行的代码部分-谢谢!

R = 1; C = 1; 
rows = 241777;
ii = 1:rows -1
% place datesall and data2 into cell array to write to file
for jj =1:2
 data(ii,jj) =csvread(strcat(dirstr,files(jj).name),R,C);         
 data2(ii,jj) = ((data(ii,jj)/100)*(1/24)*24*newTcaps(jj));
 f = strcat(dirstr2,files2(jj).name);
 %f=fopen(strcat(dirstr2,files2(jj).name),'a+');
 %dlmwrite(f, data2(ii,jj) ,'delimiter', ',', 'roffset',1,'coffset',0)
 csvwrite(f, data2(ii,jj),R,C);
 %fprintf(f,[ ' ',data2(ii,jj), '\n' ]);
end 

0 个答案:

没有答案