我有一个现有的.csv文件-data.csv-带有下面显示的两列数据。
COL1 COL2
1/1/1991 00:00 65.4
1/1/1991 01:00 59.2
我需要使用dlmwrite
,csvwrite
或什至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或第二行和第二列。
我尝试了xlswrite
,csvwrite
,dlmwrite
,fprintf
,但结果各不相同。最接近的尝试是使用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