matlab与excel数据导入导出

上传人:新** 文档编号:504412766 上传时间:2023-12-01 格式:DOCX 页数:11 大小:893.52KB
返回 下载 相关 举报
matlab与excel数据导入导出_第1页
第1页 / 共11页
matlab与excel数据导入导出_第2页
第2页 / 共11页
matlab与excel数据导入导出_第3页
第3页 / 共11页
matlab与excel数据导入导出_第4页
第4页 / 共11页
matlab与excel数据导入导出_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《matlab与excel数据导入导出》由会员分享,可在线阅读,更多相关《matlab与excel数据导入导出(11页珍藏版)》请在金锄头文库上搜索。

1、第 7 章 MATLAB 与 Excel 文件的数据交换郑志勇 (),谢中华Excel 是一款非常优秀的通用表格软件,在学习、工作与科研中大量的数据可能都是以 Excel 表格的方式存储的。如何利用 matlab 强大的数值计算功能处理 Excel 中的数据,首要解决的问题就是如何将Excel 中的数据导入到 matlab 中或将 matlab 数值计算的结果转存入 Excel 中?为此,本章主要介绍以界面操作方式(数据导入向导)、函数方式和 exlink 宏方式实现 matlab 与 Excel 的数据交互。7.1 利用数据导入向导导入 Excel 文件可以利用数据导入向导把 Excel 文

2、件中的数据导入到 MATLAB 工作空间,步骤与 节相同。【例 7.1-1】把 Excel 文件 examp71_1.xls 中的数据导入到 MATLAB 工作空间。examp71_1.xls 中的数据格式如图 7.1-1 所示。图 7.1-1 Excel 数据表格可以看出文件 examp71_1.xls 中包含了某两个班的某门课的考试成绩,有序号、班级名称、学号、姓名、平时成绩、期末成绩、总成绩和备注等数据,有数字也有文字说明。用数据导入向导会在 MATLAB工作空间生成两个变量:data 和 textdata,data 为数值矩阵,textdata 为字符串元胞数组,它们的数据格式如下(部

3、分数据): datadata =% 查看导入的变量 data12345601016010160101601016010160101016010102601010360101046010105NaNNaNNaNNaNNaN00000637308280637308280 textdatatextdata =% 查看导入的变量 textdata2书名序号班名学号姓名 平时成绩陈亮 李旭 期末成绩总成绩备注刘鹏飞任时迁苏宏宇缺考7.2 调用函数读写 Excel 文件 调用 xlsfinfo 函数获取文件信息在读取 Excel 目标数据文件前,可以通过 xlsfinfo 函数获取该文件的相关信息,为后续

4、操作获得有效信息(例如,文件类型、文件内部结构、相关的软件版本等)。xlsinfo 函数的调用格式如下:typ, desc, fmt = xlsfinfo(filename)其中输入参数参数 filename 为字符串变量,用来指定目标文件的文件名和文件路径。若目标文件在matlab 搜索路径下,filename 为文件名字符串即可,例如: abc.xls;若目标文件不在 matlab 搜索路径下,filename 中还应包含文件的完整路径,例如:E:other基础 matlab 案例书籍abc.xls。输出参数的含义如下:typ:目标文件类型desc:目标文件内部表名称(sheetname)

5、fmt:支持目标文件的软件版本【例 7.2-1】调用 xlsfinfo 函数读取 Excel 文件。以下代码保存在 m 文件 CaseXlsRead.m 中。%2010-6-22%文件名称“excel.xls”typ, desc, fmt = xlsfinfo(excel.xls)%文件在当前工作目录下,直接输入文件名称即可。system(taskkill /F /IM EXCEL.EXE);注释:在用 matlab2009a 与 Excel2007 进行数据交互时,每次使用 xls 类函数,都会重新开启一个Excel 进程,若反复使用 xls 类函数会导致系统中多个 Excel 进程并存,消

6、耗系统资源,导致系统运行速度下降,故作者使用 system(taskkill /F /IM EXCEL.EXE)调用 windows 的 taskkill 函数关闭刚使用的 Excel 进程。本例输出结果如下:typ =Microsoft Excel Spreadsheet%文件类别为 excel 文件desc =Sheet1 Sheet2 Sheet3%文件中数据表为Sheet1 Sheet2 Sheet3fmt =xlExcel8%文件版本为 xlExcel8 版本 对应的为 excel 972003 版本成功: 已终止进程 EXCEL.EXE,其 PID 为 5508。章名3 调用 xl

7、sread 函数读取数据数据导入向导在导入 Excel 文件时调用了 xlsread 函数,xlsread 函数用来读取 Excel 工作表中的数据。原理是这样的,当用户系统安装有 Excel 时,MATLAB 创建 Excel 服务器,通过服务器接口读取数据。当用户系统没有安装 Excel 或 MATLAB 不能访问 COM 服务器时,MATLAB 利用基本模式(Basicmode)读取数据,即把 Excel 文件作为二进制映像文件读取进来,然后读取其中的数据。xlsread 函数的调用格式如下:1num = xlsread(filename)读取由 filename 指定的 Excel 文

8、件中第 1 个工作表中的数据,返回一个双精度矩阵 num. 输入参数filename 是由单引号括起来的字符串,用来指定目标文件的文件名和文件路径。当 Excel 工作表的顶部或底部有一个或多个非数字行(如图 7.1-1 中的第 1 行),左边或右边有一个或多个非数字列(如图 7.1-1 中的第 H 列)时,在输出中不包括这些行和列。例如,xlsread 会忽略一个电子表格顶部的文字说明。如图 7.1-1 中的第 D 列,它是一个处于内部的列。对于内部的行或列,即使它有部分非数字单元格,甚至全部都是非数字单元格,xlsread 也不会忽略这样的行或列。在读取的矩阵 num 中,非数字单元格位置

9、用 NaN 代替。2num = xlsread(filename, -1)在 Excel 界面中打开数据文件,允许用户交互式选取要读取的工作表以及工作表中需要导入的数据区域。这种调用会弹出一个提示界面,提示用户选择 Excel 工作表中的数据区域。在某个工作表上单击并拖动鼠标即可选择数据区域,然后单击提示界面上的“确定”按钮即可导入所选区域的数据。3num = xlsread(filename, sheet)用参数 sheet 指定读取的工作表。sheet 可以是单引号括起来的字符串,也可以是正整数,当是字符串时,用来指定工作表的名字,当是正整数时,用来指定工作表的序号。4num = xlsr

10、ead(filename, range)用参数 range 指定读取的单元格区域。range 是字符串,为了区分 sheet 和 range 参数,range 参数必需是包含冒号,形如 C1:C2 的表示区域的字符串。若 range 参数中没有冒号,xlsread 就会把它作为工作表的名字或序号,这就可能导致错误。5num = xlsread(filename, sheet, range)同时指定工作表和工作表区域。【例 7.2-2】调用 xlsread 函数读取文件 examp71_1.xls 第 1 个工作表中区域 A2:H4 的数据。命令及结果如下:% 读取文件 examp71_1.xl

11、s 第 1 个工作表中单元格 A2:H4 中的数据% 第一种方式: num = xlsread(examp71_1.xls,A2:H4)num =% 返回读取的数据矩阵 num123601016010160101601010160101026010103NaNNaNNaN0006373063730% 第二种方式: num = xlsread(examp71_1.xls,1,A2:H4)num =% 返回读取的数据矩阵 num4书名123601016010160101601010160101026010103NaNNaNNaN0006373063730% 第三种方式: num = xlsread

12、(examp71_1.xls,Sheet1,A2:H4)num =% 返回读取的数据矩阵 num123601016010160101601010160101026010103NaNNaNNaN0006373063730可以看出上述命令中用到的三种调用方式的作用是相同的,读取到了相同的数据。6num = xlsread(filename, sheet, range, basic)用基本模式(Basic mode)读取数据。当用户系统没有安装 Excel 时,用这种模式导入数据,此时导入功能受限,range 参数的值会被忽略,可以设定 range 参数的值为空字符串(),而 sheet 参数必须是

13、字符串,此时读取的是整个工作表中的数据。7num = xlsread(filename, , functionhandle)在读取电子表格里的数据之前,先调用由函数句柄 functionhandle 指定的函数。它允许用户在读取数据之前对数据进行一些操作,例如在读取之前变换数据类型。用户可以编写自己的函数,把函数句柄传递给 xlsread 函数。当调用 xlsread 函数时,它从电子表格读取数据,把用户函数作用在这些数据上,然后返回最终结果。 xlsread 函数在调用用户函数时,它通过Excel 服务器 Range 对象的接口访问电子表格的数据,所以用户函数必须包括作为输入输出的接口。【例 7.2-3】将文件 ex

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号