csvread
只能读取纯数值的csv文件。当csv文件中有字符串等其他类型的值时(如下图),只能跳过该行或该列(csvread的第2,3个参数是读取文件的指定行)。
图1 chem_info.csv
不过,matlab的帮助中心现在已经不推荐使用这种方法读取csv文件了。其实有其他方法更好的读取CSV。
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
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
importdata:
从文件加载数据。
这个方法简单粗暴,还是读取chem_info.csv文件:
A = importdata(’chem_info.csv‘);
返回一个struct类型,默认将文本与数值分开:
更多参数说明请查看importdata
直接复制excel的数据,在工作区双击打开一个变量,然后右键直接粘贴excel数据即可
方法二:
调用xlsread函数,该函数可以读取Excel自定义范围的数据并且赋给变量data
xlsread函数的调用格式为
data = xlsread(‘文件名+后缀名’, ‘工作表名字’, ‘数据的范围’)
读取名为 ‘城市坐标.xlsx’ 的文件中从 ‘A2’ 到 ‘C10’ 的所有数字数据。
readmatrix("城市坐标.xlsx",'range','A2:C10')
2021年9月9日12:49:10
csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。csv文件用记事本和excel都能打开,用记事本打开显示逗号,用excel打开,没有逗号了,逗号都用来分列了,还可有Editplus打开。百度安全验证利用matlab将txt文件批量转excel文件的样例程序。
1、M = csvread('filename')
2、M = csvread('filename', row, col)
3、M = csvread('filename', row, col, range)
第一种方法中,直接输入文件名,将数据读