从matlab中的CSV文件中读取特定列

时间:2013-07-03 05:56:39

标签: matlab csv

我正在尝试在matlab中读取CSV文件。我只想阅读第二列,但下面的代码打印出CSV文件中的所有内容。我必须引入哪些参数或函数才能使它只读取第二列

FILENAME = 'C:\Users\Desktop\Results.csv';

fid = fopen(FILENAME, 'rt');
a = textscan(fid, '%s', 'HeaderLines',1,'Delimiter',',');
fclose(fid);
celldisp(a)

1 个答案:

答案 0 :(得分:8)

有几种方法:

  1. 使用cvsread
    假设文件 1

    中有N
    a = csvread( FILENAME, 0, 1, [0 1 N-1 1 ] );
    
  2. 您可能还会考虑xlsread

    a = xlsread( FILENAME, 'B:B' );  
    

    请参阅xlsread doc。

  3. 上的具体example
  4. 另一个选项是dlmread

    a = dlmread( FILENAME, ',', [0 1 N-1 1] );
    

  5. 1 - 可以在this answer by Rody Oldenhuis中找到一种很好的(快速)方法来计算Matlab中文件的行数。