2024年3月27日发(作者:)
matlab读取excel
office的表格文件也就是xls文件本质上就是一个二维矩阵,二维矩阵是用来保存数
据的最佳方式,所以在日常工作中,我们从其它地方获取的数据通常都被保存为xls格式,
但处理数据时,我们却需要把xls文件的数据导入到matlab里进行处理。
如果你只处理一个文件并且只做一次的话,你可以手动来拷贝粘贴,这花费不了你
太多时间。如果有很多xls文件,或者你的xls文件的内容可能随时被修改,那么下面的方
法可以派上用场。
matlab自身提供了大量的函数,包括读取office文件。其中xlsread和xlswrite就
是专门用来读取xls文件里的数据的。这两个函数的使用方法可以直接查看matlab自带的
帮助。
xlsread对于纯数据的xls文件支持很完美,也就是说当xls文件里的每个格子都是
“数”时,xlsread会直接返回一个实数矩阵。但是通 常我们拿到xls文件并不是这样,
它的表头多半是描述性文字,它的数据也有可能是文字,有些位置的数据还有可能是缺失
的。xlsread对这样的文件读取 无能为力,或者说需要大量的时间去协调数据的位置信息。
要是有一个函数,能够按照原有的顺序直接读取所有的单位格数据就好了。当然,这时候
返回的矩阵就不 能是一个数值矩阵了,它将会是一个cell矩阵,里面的每个元素类型可能
不一样。
matlab本身并不提供这个功能,但是另外有一个函数officedoc完美的实现这个功
能。这个函数包可以去OfficeDoc官方网站上去下载,解压缩后放到工作路径上即可。使
用方法可以查询help officedoc。officedoc是收费函数包,但有免费版本,而且其免费
版本可以实现上面我们所说的效果(收费版本主要是可以用来修改office文件)。
例子:
在matlab中读取xls格式的文件内容如应用如下函数:
=xlsread('c:','a0:an40'),其中:c:为文件存放的地
址,a0:a40为将要读取的单元格的范围.bb为读取的矩阵在MATLAB中的变量名.
2.使用m文件脚本如下:
Excel = actxserver('ation');
set(Excel, 'Visible', 1);
Workbooks = oks;
Workbook = invoke(Workbooks, 'Open', [cd,'']);
%% 读取 :sheet1 a1(即 R1C1)~an40(即 R240c40) 范围内
的 40by40 矩阵
read_excel=ddeinit('excel',':sheet1');
feature1 = ddereq(read_excel, 'R1c1:R40c40');


发布评论