MATLAB 从CSV文件 读取一列 该怎么写

csv 文件名是‘2008.csv’ 已经在MATLAB 路径里。 需要读取的一列的表头是‘ArrDelay'。 文件总29列, 总7009729行。 需要读取的那一列是第15列。 这一列有一个表头’ArrDelay‘在第一行, 这一列包含了整数数据,但是其中还有’NaN'的string数据, 这些NaN表示缺失的数据最好转换为0(我不知道怎么弄)。 我的目的是,读取这一列然后对它做平均值的运算。
求大神,求指导,求帮忙,各种急求!!!好人好报, orz、跪谢
我自己写了一个,但是出错。。。我猜是因为数据里混了string、的缘故。。。
tic
ArrDelay = csvread('2008.csv', 1, 14, [1,14,7009728,14]);
meanresult = nanmean(ArrDelay);
sprintf('%g.\n',toc)

  用csvread函数就可以实现,参考如下:
  注意:csvread函数只试用与用逗号分隔的纯数字文件
  第一种:M = CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M
  第二种:M = CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。
  第三种:M = CSVREAD('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。
  注意:matlab认为CSV第1行第1列的单元格坐标为(0,0)
  例1 读取第2行以下,第0列以右区域的数据;
  m = csvread('csvlist.dat', 2, 0)
  m =
  5 10 15 20 25 30
  7 14 21 28 35 42
  11 22 33 44 55 66
  
  例2 读取第2行以下,第0列以右,第3行以上,第3列以左区域的数据;
  m = csvread('csvlist.dat', 2, 0, [2,0,3,3])
  m =
  5 10 15 20
  7 14 21 28
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-23
您好:第一种:M = CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M
第二种:M = CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。
第三种:M = CSVREAD('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。追问

这个我在MATLAB 的文档库里都看过了试过了就是没成功才发问的,你的回答太general了,能不能再详细一点,谢了。

本回答被网友采纳
相似回答