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');