使用matlab读取含表头csv文件
作者:衷科知眠
matlab读取含表头csv文件
matlab中常用的读取csv的函数为csvread,
其调用格式为:
data = csvread(csv_file, R, C, RNG)
其中csv_file为要读取的csv文件,R为从第R行开始读取,C为从第C列开始读取,RNG为读取的行列范围,比如 RNG = [R1,C1, R2, C2]。
值得注意的是,虽然matlab默认的序号一般是从1开始,但是对于R和C的设置却是从0开始的,也即,如果想要从文件中的第一行读取,则R应该设为0。
使用csvread读取csv文件的前提是csv文件为纯数值文件,如果文件中含有字符就会报错。
比如无法读取如下带有表头的文件。
可有时,表头的信息对于后续的数据分析是必要或者更方便的,我们就需要将表头信息读取进来,csvread函数就无法满足该需求了。
此时,我们可以使用比较原始的函数importdata,其调用格式为:
headerData = importdata(csv_file)
该函数会返回一个struct类型结果,并会自动将文本与数值分别保存在两个变量中例如上述的表格,其结果为:
其中data中为数值结果,
textdata中为字符结果
此时,我们可通过对字符变量索引来获取表头信息,比如,获取表头中的第5个变量,
可通过命令
headerName = headerdata.textdata{1,5}
得到对应的表头变量,以供后续使用。
matlab读取xls、xlsx、csv文件
常常我们在matlab里需要读取excel数据文件或者保存matlab中矩阵的数据。
但是直接在matlab里用xlswrite写出的文件实际上是csv格式,在matlab里无法用xlsread读取。
笔者总结如下。
1 matlab读写excel文件
读xlsx、xls文件:
如果是读xls文件,就改一下后缀。
写xlsx、xls文件 :
training是要写出的矩阵数据。
2 matlab读写csv文件
3 注意区分csv文件和xlsx文件
这是xlsx文件
这里在matlab里显示是csv文件而不是xls文件,虽然它的后缀是xls。
真正的xlsx文件在matlab里显示仍是xlsx文件。这样你就知道该按csv读取还是xlsx读取。
觉得csv和xlsx相互转换麻烦的同学,也可以在wps里也可以先打开csv文件,再另保存为xlsx文件,再在matlab里用xlsread读取即可。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。