MATLAB中读取excel数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中读取excel数据相关的知识,希望对你有一定的参考价值。

在excel中分别有sheet1,sheet2,sheet3......等一系列文件,而我要运用循环来读取每个文件里的数据到MATLAB中,我应该怎样做呢?

参考技术A

1.假设你读出来的一次存放在变量A, B, C, D, E,...

2.假设你的xls或者xlsx文件叫做a

3.假设你空的sheet都已经删掉了

(你可以根据自己的情况来改变变量名,或者是文件名。)

        那么批处理将会很方便,那么程序应该如下这么写~


clear;

excelfile='a.xlsx';

[typ, desc, fmt] = xlsfinfo(excelfile);

for index=1:length(desc);

    sheetname=char(desc(index));

    eval([char(index-1+'A') '=xlsread(excelfile,sheetname);']);

end


看我运行的结果:



看,我的C是空的,是因为我只给前两个sheet赋值了~~~~~~

还有不懂的再接着问哈~

本回答被提问者采纳
参考技术B 用mathematica吧,很好的 参考技术C 呵呵 不知道 用java可以

xlsread 读取excel 指定区域

matlab中想要Data=xlsread(filename , range) 读取excel中指定区域的数据,但我想把区域写成 例如'A7: G(7+10*i)', 这样的形式, 怎么实现?

matlab的xlsread命令读取excel
如果发现使用MATLAB的xlsread语句读取excel时,出现无法启用excel服务器导入的问题或警告时,可以尝试次方法。
开启分步阅读模式
操作方法
01
方法一:打开要读取的excel文件,点击文件-->信息(我使用的是excel 2016)

02
选择兼容模式,保存后,重新运行你的MATLAB程序就可以了。

03
方法二:将excel文件另存为excel工作簿。

特别提示
另存为excel工作簿后,文件名扩展名可能会由xls变为xls,在MATLAB程序中应做相应更改。

不同的文件读取方式可能会得到不同的数组,所以应该在工作区对读取的数组进行检查,防止调用错误的数组。

本内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。
参考技术A 数模matlab入门教程-001
1.函数介绍
2.数据读入
3.后续内容

数模要开始了,整理了一些基本资料提供给没有基础的同学。本文以2017届D题为例,21天数学建模从入门到精通。
这个题目可以在数模官网上下载应该,之很早之前下的了,需要的话我也放了个链接。
https://download.csdn.net/download/coomcon/11483957
环境为 win8+matlab2014a
1.函数介绍
数据读入一般用xlsread即可,该函数的使用也非常简单。
可以直接在matlab的命令窗口键入 help xlsread 就会显示出本函数的帮助文档,也就是用法。
函数示例
参数定义如下:
在这里入图片描述
Filename为路径文件名,xlsread(filename)函数会直接读取filename对应xls文件中的sheet1中的数据区域到双精度矩阵num中。
sheet用来指定读入excel文件的第几个sheet
xlrange 是指定sheet中表格的区域,使用时需要用单引号括起来,使用方法为’A2:C14’代表以A2和C14为对角定点的矩形区域
主要用到的就是上面几个参数,

至于函数 xlsread(filename, -1)
输入后matlab将会打开相应的excel文件,切换到想要的sheet,用鼠标选择需要导入的数据区域,然后点击确定就读入到matlab中了。如下图所示。

在这里插入图片描述

2.数据读入
在matlab工作区内,右键新建一个文件夹D,将xls文件复制到该文件夹下,新建datainput.m文件。如下图所示,为了读入方便顺路将xls文件名改成cum2017.
在这里入图片描述

读入连通关系数据:

filename = 'cum2017.xlsx';
num = xlsread(filename,2,'A2:C32');
1
2
1
2
3.后续内容
乍一看是个图论问题,下面需要考虑建图的问题,欲求不满的同学可以自己学习一下图论。了解一下顶点和边,了解一下有向图和无向图,以及图的存储形式。比如邻接矩阵等。
参考技术B 可以用[numerric,txt,raw]=xlsread('filename','sheet','range')
如读取文件data.xls中sheet1中的B2:B5,保存为c变量,程序如下
c=xlsread('data.xls','sheet1','B2:B5')
参考技术C 先给出pailie3.xlsx部分数据



一、关于xlsread函数
fid = xlsread('pailie3.xlsx');


第二列为字符串,读出来显示NaN (Not a Number,不是数字),且fid类型为double

2.[num,txt,raw] = xlsread('pailie3.xlsx');



num 为double 类型



txt为cell类型,只有第二列和第11列被读出来



raw为cell类型,能同时读取字符或者数字。

总结:只需要操作数据时可以使用1中读取方法或者使用num;当需要操作字符时,可以使用txt;raw是通用的。

二、关于cell型变量
Cell是matlab中一种基本数据类型,类似于python中的list,每个元素的类型可以不同,使用起来比较方便

例如使用cell1 = txt(1,2);可以对cell1进行赋值,str = cell11可以将cell1转化为string类型,字符串的操作就比较简单了。

详细讲解见链接:

http://blog.sina.com.cn/s/blog_8259d70901017wit.html

三、关于txt文件的读取

读文件时,txt也是一种常用的文件格式,使用textread函数进行读取
参考技术D 读取方法如下:
用[numerric,txt,raw]=xlsread('filename','sheet','range')
如读取文件data.xls中sheet1中的B2:B5,保存为c变量,程序如下
c=xlsread('data.xls','sheet1','B2:B5') 。

以上是关于MATLAB中读取excel数据的主要内容,如果未能解决你的问题,请参考以下文章

如何用matlab读取excel数据

xlsread 读取excel 指定区域

请问matlab如何从excel表格中读取数据,谢谢

MATLAB应用实战系列(五十二)-Excel数据的读取

在 MATLAB App Designer 中将数据从 excel 读取到表中

matlab怎么读取excel中所有sheet的数据