note_9:matlab读写数据总结

matlab读写数据总结


参考



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。但是如果全部数据都要更换成整数类型的话,可以用强制类型转换int8int16int32之类的。
A = xlsread(filename);
B = int32(A);
(4) 截取矩阵
  • 整个读进来之后可能有些行和列是不想要的,那可以直接截取出来。
% 二维
A = textread(filename);
% 截取m行到n行,i列到j列的内容
B = A(m:n,i:j);
  • 如果是开头的几行不想要的话,可以在textread(filename,param,value)里面设paramheaderlinevalue就是行数。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值