csvread只能读取纯数值的csv文件。当csv文件中有字符串等其他类型的值时(如下图),只能跳过该行或该列(csvread的第2,3个参数是读取文件的指定行)。
图1 chem_info.csv
不过,matlab的帮助中心现在已经不推荐使用这种方法读取csv文件了。其实有其他方法更好的读取CSV。
1. textscan
textscan:
C = textscan(fileID,formatSpec)
将已打开的文本文件中的数据读取到元胞数组 C。该文本文件由文件标识符 fileID 指示。使用 fopen 可打开文件并获取 fileID 值。完成文件读取后,请调用 fclose(fileID) 来关闭文件。
比如读取图1中的csv数据:
file_id = fopen('chem_info.csv');
C = textscan(file_id, '%s%d%f%d', 'Delimiter', ',', 'HeaderLines', 1 );
fclose(file_id);
<