赞
踩
我要读入的数据:
可以看到他是有抬头,并且不是纯数据的csv文件。
如果使用csvread读取
data=csvread('mc1data.csv',1,0);%csvread只能读取纯数据
csvread(fid,start row,start column)
fid:要读取的csv文件名
start row:开始读取的行(第一行是0,第二行是1)
start column:开始读取的列(第一列是0,第二列是1)
csvread默认索引为0
会出现如下错误:
发生错误的原因是,我是从第2行第1列开始依次读取数据。虽然跳过了字符串抬头,第一列的数据是字符串,所以仍然错误。
data=csvread('mc1data.csv',1,1);%csvread只能读取纯数据
就会有如下结果:
对比原始数据表格发现:它把原来空数据的位置,填充为0了
通过查阅网上的博客并且与同学交流之后,我找到了一种非常快速的方法(此方法虽然简便,但是貌似对数据量过大的数据不太友好,因为我使用的数据量不是很大)
参考博文:https://blog.csdn.net/m0_37639589/article/details/77385833
clear all;
clc;
fid=importdata('mc1data.csv');
total_row=size(fid.data,1);
data=fid.data;
importdata之后得到结构体,如下图所示:
data:纯数字数据
和上面的importdata的结果不同,这里空的数据没有被填充数字0。
textdata:字符串数据
有抬头,有字符串数据
(1)将csv文件转化为txt文件并且删掉了抬头
(2)filepath='mc1data.txt';fid1=importdata(filepath);
(1)data:纯数字数据(相同)
(2)textdata:
(3)row headers:
fscanf 函数使用matlab官方文档:
https://ww2.mathworks.cn/help/matlab/ref/fscanf.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。