Matlab: read only header line from a .csv-file

前端 未结 2 1115
-上瘾入骨i
-上瘾入骨i 2021-02-14 02:15

Assume there\'s a myfile.csv with variable names in the first row and decimal numbers in the following ones. In Matlab I\'d like to read the header line and the decimal numbers

相关标签:
2条回答
  • 2021-02-14 02:34

    To extract the first line, you just need

    fid = fopen('myfile.csv');
    a = textscan(fid,'%s',1);
    fclose(fid);
    
    0 讨论(0)
  • 2021-02-14 02:37

    Open the file with fopen, read the header line with textscan, read the decimal numbers with fscanf, and call fclose in the end - only 4 lines in total :) Example input file:

    Weight,Size,Count
    1,2,3
    4,5,6
    7,8,9
    10,11,12
    

    Reading of this file:

    fid = fopen('myfile.csv', 'r');
    header = textscan(fid, '%[^,],%[^,],%[^,\r\n]', 1);
    data = transpose(fscanf(fid, '%g,%g,%g\n', [3, Inf]));
    fclose(fid);
    
    for i = 1 : 3; disp(['"' cell2mat(header{i}) '"']); end;
    disp(data);
    

    Note that the data read by fscanf need to be transposed (I emphasized this by writing transpose instead of '). The output:

    "Weight"
    "Size"
    "Count"
         1     2     3
         4     5     6
         7     8     9
        10    11    12
    
    0 讨论(0)
提交回复
热议问题