数学建模社区-数学中国
标题:
[你经常用错的函数]读写Excel文件函数xlsread和xlswrite
[打印本页]
作者:
建不了的模。
时间:
2014-10-17 10:58
标题:
[你经常用错的函数]读写Excel文件函数xlsread和xlswrite
尽管Matlab功能很强大,但是数据样式更是多样啊...读写Excel也是我们经常需要做的,虽然可以通过导入,大部分的数据都可以解决,但是也是有不少需要注意的地方.
读取xls
xlsread的使用具体请看
http://www.mathworks.cn/help/techdoc/ref/xlsread.html
或者help xlsread.
Tips:
如果没有装有Excel的机子,可以使用参数'basic'
读取的Excel文件如果是含有非数值类型,请使用[num, txt, cell] = xlsread(filename,...)
如果需要过滤某些数据可以使用定义的函数,代人句柄就可num = xlsread(filename, ..., functionhandle)
如有错误请检查Excel是否安装,xls是03版本的 xlsx,xlsm,xlsb是07版以上的
filename的路径的文件夹必须是存在的 不存在请建立
时间格式转换,基准不同.datenum,m2xdate,x2mdate
读取的结果都是cell类型的
写入xls
同样的,xlswrite的使用情况还是
http://www.mathworks.cn/help/techdoc/ref/xlswrite.html
和help xlswrite.
Tips:
基本的矩阵是毫无问题,注意Inf ->65535. NaN -> empty cells.日期也是需要转换
没有安装Excel请使用文本格式保存...只有03版本要保存xlsx必须安装07兼容包才会成功
最重要的一个用途就是保存cell数组.但是必须是单一的简单类型(a single element) 如果包含复杂类型比如cell和struct都会创建空白文件而达不到目的.
指定保存的位置或初始左上角位置range使用的是引用单元格的A1写法而不是R1C1
技巧:
如果对EBA很熟悉 可以考虑使用com的方法控制Excel
e = actxserver ('Excel.Application')
对应非单一的cell数组,经常使用循环来读取每一个cell里面的数据 例如下面是一个实际应用的部分代码
Ps.大致情形是这样的:文件夹data里面有机器自动生成的采集数据,是xls格式,每天几个,都是只有两列,第一列是波长(数值类型),第二列是吸光度(字符串类型,这个坑爹啊 没办法 人家仪器供应商提供的就是这样...).现在需要把所有数据保存在一个xls里面进行处理
对应Excel引用单元格的A1表示法 下面返回首列的第一个单元格位置的range,从而方便实现Excel追加一列数据
作者:
阿里阿里
时间:
2014-10-17 12:16
nice············
作者:
深V礼
时间:
2014-10-17 15:27
非常好的资料、nice
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5