我的原始 CSV 文件看起来像第一张照片。我想用 Matlab 把它读成第二张图片的格式。我有超过 1000 个相同类型的 CSV 文件,如果我通过复制/粘贴来做会很痛苦。我怎样才能做到这一点?有什么例子吗?
原始数据:
输出数据:
我的原始 CSV 文件看起来像第一张照片。我想用 Matlab 把它读成第二张图片的格式。我有超过 1000 个相同类型的 CSV 文件,如果我通过复制/粘贴来做会很痛苦。我怎样才能做到这一点?有什么例子吗?
原始数据:
输出数据:
首先要意识到 .csv 文件的格式非常简单。您的上述文件实际上是一个纯文本文件,每行包含以下文本:
id,A001
height
a1,a2,a3
3,4,5
3,4,5
6,7,5
weight
a1,a2,a3
4,4,5
5,4,6
i6,7,5
因此,在 Matlab 中编写自己的解析器并不难。你想使用类似的命令
fid = fopen('filename.csv','r');
L = fgetl(fid); % get a text line from the file
commas = find(L==','); % find where the commas are in the line
n1 = str2num(L(1:commas(1)-1); % convert the first comma-delimited number on line L
fidout - fopen('myfile.csv','w');
Lout = [ L(commas(2)+1:commas(3)-1) ', a1, a1'];
fwrite(fidout,Lout); % write a line out to the output file
fclose all; % close all open files.
一开始将各种值读入各种变量,然后将它们按照您希望它们写入输出文件的方式写出,看起来会很慢。但是一旦你开始滚动它会很快,你会发现自己对文件中的内容有很好的理解,并且你会第一手了解编写类似texscan.m
或csvwrite.m
等等的内容。
祝你好运!