300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > matlab三种方法读取带文本内容的csv文件

matlab三种方法读取带文本内容的csv文件

时间:2019-01-17 11:12:20

相关推荐

matlab三种方法读取带文本内容的csv文件

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);

上述代码中,textscan有4个参数:

file_id :指用fopen打开文件并获取 的fileID 值‘%s%d%f%d’:指匹配的格式。图1一共四列内容,分别是字符串、整型、浮点型、整型,所以对应’%s%d%f%d’。更多匹配格式请到官方帮助中心搜索关键字“数值字段”查看。Delimiter:指分割方式,csv文件以“,”分割HeaderLines:标题行数,默认为0。

返回结果

返回一个1×4的cell.

更多参数说明请查看textscan

2. readmatrix

readmatrix:

A = readmatrix(filename)

从文件中读取矩阵。

readmatrix 基于文件的扩展名确定文件格式:

txt、.dat 或 .csv(适用于带分隔符的文本文件)xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)

我们用readmatrix读取图1中的csv数据:

A = readmatrix(’chem_info.csv‘, 'OutputType', 'string');

readmatrix第一个参数是文件名。第二个参数指输出类型。如果不带这个参数,那么字符串那一列的输出结果是Nan值:

加上之后,则全部输出文本类型,后面再把要作为数值型的内容转换数据类型。

更多参数说明请查看readmatrix

3. importdata

importdata:

从文件加载数据。

这个方法简单粗暴,还是读取chem_info.csv文件:

A = importdata(’chem_info.csv‘);

返回一个struct类型,默认将文本与数值分开:

更多参数说明请查看importdata

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。