我需要csv
在 MATLAB 中阅读以下文件:
2009-04-29 01:01:42.000;16271.1;16271.1
2009-04-29 02:01:42.000;2.5;16273.6
2009-04-29 03:01:42.000;2.599609;16276.2
2009-04-29 04:01:42.000;2.5;16278.7
...
我想要三列:
timestamp;value1;value2
我尝试了此处描述的方法:
Reading date and time from CSV file in MATLAB
修改为:
filename = 'prova.csv';
fid = fopen(filename, 'rt');
a = textscan(fid, '%s %f %f', ...
'Delimiter',';', 'CollectOutput',1);
fclose(fid);
但它返回一个 1x2 单元格,其第一个元素是a{1}='ÿþ2'
,另一个是空的。
我还尝试根据我的情况调整这些问题的答案:
在 MATLAB 中导入数据和时间 在 matlab 中
读取具有特定格式的数据文件并将日期转换为 matal 序列时间
,但我没有成功。
如何导入该csv
文件?
编辑在@macduff 的回答之后,我尝试将上面报告的数据复制粘贴到一个新文件中并使用:
a = textscan(fid, '%s %f %f','Delimiter',';');
它有效。不幸的是,这并没有解决问题,因为我必须处理csv
自动生成的文件,这似乎是 MATLAB 奇怪行为的原因。