matlab读写数据总结
参考
- 官网:matlab文档
- matlab文档:xlsread
- matlab文档:textread
- matlab文档:dlmwrite
- csdn博客:Matlab使用xlsread读入xlsx文件错误处理
1. 读excel
(1) xlsread
- 扩展名一定要是
.xls,如果是.xlsx会报错。 - 如果直接把扩展名为
.xlsx改成.xls有可能也会出问题,所以还是另存为一份吧。 - 如果是用
xlsread(filename)这种普通读入的话,matlab会读直接读数字。如果xls里面某列的数据类型是常规的话,xlsread(filename)会报错,所以要把数据类型改一下,改成别的,总之不是常规。 - 可以参考Matlab使用xlsread读入xlsx文件错误处理,打开excel修改
com加载项。 - 实在不行的话,在excel里另存为
csv,然后在matlab里用csvread(filename)。
(2) textread
- 扩展名一定要是
.txt。 - 如果是用
textread(filename)是普通读入,直接读取数字,跳过字母、空格那些东西。如果数据是按tab或者空格隔开的话,也可以直接用textread(filename)读入,不用写format。
(3) 强制类型转换
- 一般直接读进去的话,生成的矩阵的类型是
double。但是如果全部数据都要更换成整数类型的话,可以用强制类型转换int8、int16、int32之类的。
A = xlsread(filename);
B = int32(A);
(4) 截取矩阵
- 整个读进来之后可能有些行和列是不想要的,那可以直接截取出来。
% 二维
A = textread(filename);
% 截取m行到n行,i列到j列的内容
B = A(m:n,i:j);
- 如果是开头的几行不想要的话,可以在
textread(filename,param,value)里面设param为headerline,value就是行数。
2. 写数据
(1) dlmwrite
函数
dlmwrite('filename',A,'delimiter','\t','precision','%.f');
filename就是写入的那个文件,文件路径一定要存在,如果要matlab自动创建文件夹的话要加条别的命令。A就是要写入的矩阵,一般情况下不用特地表明换行,因为写入的时候就是按行写入的,matlab会自动换行。delimiter和\t就是格式,每个元素之间用什么格式分开,如果是空格的话,可以用' '。其他那些要用转义字符。precision和%.f是精度,%.f就和C语言里面的用法是一样的,就是保留几位,当然还有别的精度表示方法,dlmwrite里面有详细介绍。
(2) 压缩矩阵
- 如果是比较大的对称矩阵,直接压缩的话会很占空间,可以考虑用压缩矩阵。只存上三角或者上三角,把二维矩阵变成一维行向量来存,会小一点。
- 如果写完之后txt太大不好打开,可以用
gitbash来打开看。
$ vi filename
- 显示出来之后,用键盘上的
上下左右来调整位置。 - 发现没问题之后,输入
:q,就是直接退出。 - 要修改的话,先输入
i,进入到插入(insert)模式,然后移动到要改的位置进行修改。修改完后保存退出,输入:wq。
本文详细介绍了如何在MATLAB中读写各种数据格式,包括Excel(.xls, .xlsx), 文本(.txt)和CSV文件。重点讲解了使用xlsread和textread函数读取数据的技巧,以及使用dlmwrite函数写入数据的方法。同时,提供了处理数据类型转换和矩阵截取的操作建议。
3507

被折叠的 条评论
为什么被折叠?



