当前位置:   article > 正文

matlab读csv文件_matlab读取csv有字符有数字

matlab读取csv有字符有数字

MATLAB 读csv文件

带有字符串的csv文件

我要读入的数据:
在这里插入图片描述
可以看到他是有抬头,并且不是纯数据的csv文件。

方法一:

如果使用csvread读取

data=csvread('mc1data.csv',1,0);%csvread只能读取纯数据

  • 1
  • 2

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只能读取纯数据
  • 1

就会有如下结果:
在这里插入图片描述
对比原始数据表格发现:它把原来空数据的位置,填充为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;
  • 1
  • 2
  • 3
  • 4
  • 5

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

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/782928
推荐阅读
相关标签
  

闽ICP备14008679号