在MATLAB导入txt文件技巧大全这篇推文中,讲解了如何将txt文件导入MATLAB中。今天继续为大家讲解如何将excel表格导入MATLAB中。
一个excel表格中可能有一个Sheet或多个Sheet,虽然在MATLAB中只需要加些代码即可轻松实现,但是为了帮助各位更容易理解。
因此,分为两部分讲解:1)excel表格中只有一个Sheet;2)excel表格中只有多个Sheet。
一 | excel表格中只有一个Sheet
表格中的数据如下所示,此时表格中只有一个Sheet。
![0f9b3496da9daa040f1239d510338fb5.png](https://i-blog.csdnimg.cn/blog_migrate/581b6194dffc1eb9c4814a1c8edd8563.jpeg)
01 | 导入第1列数据
现在想把第1列的数据全部导入进来,可以使用如下代码,A1表示这一列的第一个数据的位置,A13表示这一列的最后一个数据的位置。
filename
运行如下,num是一个12行1列的矩阵,表示提取出的数字的矩阵;txt是一个1行1列的元胞数组,表示提取出的文字的元胞数组;raw是一个13行1列的元胞数组,表示提取出的所有数据的元胞数组:
![23510103cc6ce463d3c55e4e5a1ce242.png](https://i-blog.csdnimg.cn/blog_migrate/ff7a8db5f0157cba890cc569476abbc2.png)
![f6ef967cd349493c490612d385835b07.png](https://i-blog.csdnimg.cn/blog_migrate/b9cad7a6e3a0e7a7031b98731cae6fa4.png)
![662a2180ee82424d25c62d29cab47055.png](https://i-blog.csdnimg.cn/blog_migrate/2e444d75b6dfdaac1b869e592ababe2e.png)
xlsread函数在提取数字的过程中,遇到文字会分三种情况进行处理:
1)文字在需要导入的第一个数字之前,此时xlsread函数会自动跳过这些文字,直接跳到第一个需要导入的数字;
2)文字在需要导入的若干个数字之间,此时xlsread函数会将这些文字赋值为Nan。
3)文字在需要导入的若干个数字之后,此时xlsread函数会自动跳过这些文字。
在这个例子中,因为“序号”在第一个需要导入的数字“1”的前面,所以直接跳过“序号”。
02 | 导入第3列数据
为了进一步验证xlsread函数的机制,不妨拿第3列做一个实验,此时依然想把第3列所有数据全部导入进来,使用如下代码,C1表示这一列的第一个数据的位置,C13表示这一列的最后一个数据的位置:
filename
代码运行结果如下,num是一个8行1列的矩阵,表示提取出的数字的矩阵;txt是一个13行1列的元胞数组,表示提取出的文字的元胞数组;raw是一个13行1列的元胞数组,表示提取出的所有数据的元胞数组:
![8e94e1fbda7cf9eadfe97407d24511e2.png](https://i-blog.csdnimg.cn/blog_migrate/57772afc83404a84ad6609dde885e78e.png)
![85e80a78579859ff2b5198669da0e5f4.png](https://i-blog.csdnimg.cn/blog_migrate/77dbe592b8d07c44e542a3995b8802c9.png)
![3095bbaa471ad35bad578ccfddf33efa.png](https://i-blog.csdnimg.cn/blog_migrate/dc1ba8fff4c1353c5dcda24e79c86b6b.png)
在这个例子中,xlsread函数在提取数字时,因为“y坐标”、“七”和“八”在第一个需要导入的数字“9”的之前,所以直接跳过“y坐标”、“七”和“八”,而“十”在需要导入的数字之间,所以赋值为Nan,又因为“十七”和“十八”在需要导入的数字之后,所以直接跳过。
03 | 导入Sheet1全部数据
现在想导入全部数据,可使用如下代码:
filename
代码运行结果如下,
num是一个12行3列的矩阵,表示提取出的数字的矩阵;txt是一个13行3列的元胞数组,表示提取出的文字的元胞数组;raw是一个13行3列的元胞数组,表示提取出的所有数据的元胞数组:
![6da8b88b5e3249c586fd4a9da6cedb1f.png](https://i-blog.csdnimg.cn/blog_migrate/b97bed82aeb789419c78043e00d7b50b.png)
![b49a05f12714c5e1dfa220c96ff88c5c.png](https://i-blog.csdnimg.cn/blog_migrate/87ee2c54dbdcc560ea28731999f26086.png)
![a85320a83cfe5df8b8c4dbe7f8baf11f.png](https://i-blog.csdnimg.cn/blog_migrate/212d93a5c4de4eb1c13c9a8d2133129c.png)
04 | 导入Sheet1部分数据
现在想导入Sheet1中如下所示的部分数据,5的位置是A6,16的位置是C11。
![d9b60d146aefdfc0271f401d88af5f23.png](https://i-blog.csdnimg.cn/blog_migrate/bef6fb61b48d2cd1c8dab442a4a5a6db.png)
可以使用如下代码导入上述数据:
filename
代码运行结果如下,
num是一个6行3列的矩阵,表示提取出的数字的矩阵;txt是一个0行0列的元胞数组,表示提取出的文字的元胞数组;raw是一个6行3列的元胞数组,表示提取出的所有数据的元胞数组:
![4fbbea1a6ea7c6070a12ccd598c90053.png](https://i-blog.csdnimg.cn/blog_migrate/9b362ebb63d1ced2b0c6b148933ba5b8.png)
![1ffcec16db8cede47fea75668256b64b.png](https://i-blog.csdnimg.cn/blog_migrate/9b7d643f4d54d75d7a54881ea769791c.png)
![89dc8eb268f7d6d162662fb9e8f54576.png](https://i-blog.csdnimg.cn/blog_migrate/5422176edf405afa8374bd6a2251b696.png)
二 | excel表格中有多个Sheet
现在excel表格中有3个Sheet,分别为Sheet1、Sheet2和Sheet3。
![187393b4c3b3ec0e5816bfa2a0ced14e.png](https://i-blog.csdnimg.cn/blog_migrate/4919ec10e09d9bf4c91db66d94f146af.jpeg)
![412ac88926ab1acd6e797ed4b9adba8f.png](https://i-blog.csdnimg.cn/blog_migrate/3a4654f8d2750b2702aa13c718c85c9e.jpeg)
![f2c00eef1895c6a89d7f3d41ee897079.png](https://i-blog.csdnimg.cn/blog_migrate/ee3093bb1998213eb5b33190b549865b.jpeg)
现在想导入Sheet2中如下部分的数据,15的位置是A4,26的位置是C9:
![87b51f846ca14f553512ba9c76238e4d.png](https://i-blog.csdnimg.cn/blog_migrate/60385fff65f2a010081d2c1c92343220.jpeg)
可以使用如下代码导入上述数据,相较于之前的代码,在filename后增加了'Sheet2',表示提取哪一个Sheet的数据:
filename
代码运行结果如下,
num是一个6行3列的矩阵,表示提取出的数字的矩阵;txt是一个0行0列的元胞数组,表示提取出的文字的元胞数组;raw是一个6行3列的元胞数组,表示提取出的所有数据的元胞数组:
![8a66deb866e936cae715702b40eff3c3.png](https://i-blog.csdnimg.cn/blog_migrate/98ad65cf9cf6daac2d1b738589358999.png)
![c05527bb88b2b851d03416655863d232.png](https://i-blog.csdnimg.cn/blog_migrate/01d5463b38638faf18c2a75486a8ddc5.png)
![8f30acbd62112675ca2ce01889c36eb7.png](https://i-blog.csdnimg.cn/blog_migrate/aefe429ffab72e4e972f05c5374cce59.png)
更多资源尽在:优化算法交流地
往期精选
- 号内搜索
- 旅行商问题(TSP)合辑
- MATLAB导入txt文件技巧大全
遗传算法(GA)求解旅行商问题(TSP)MATLAB代码讲解
车辆路径问题(VRP)合集
遗传算法求解0-1背包问题(附matlab源代码) - 模拟退火(SA)算法求解旅行商 (TSP)问题MATLAB代码讲解
- 多目标优化 | 基于NSGA-II的多目标0-1背包问题求解(附matlab代码)
- 多目标优化 | NSGA-II进阶教程(全网首个三目标优化教程)
- 机器学习 | 基于遗传算法的BP神经网络优化算法(附MATLAB代码)
- 遗传算法求解车间调度问题(附MATLAB代码)
- 多目标优化 | NSGA-II
- word转换为pdf后图片失真的解决办法(全网首发)
- 机器学习 | 简单实现Bp神经网络
- 二维装箱问题之BL法修正版(附MATLAB代码)
快速入门文献管理软件-EndNote X9 - 最小二乘法(附MATLAB代码)
NSGA-II多目标优化算法讲解(附MATLAB代码) - 基于人工势场法的机器人二维路径规划(附MATLAB代码)
- 基于粒子群算法的多目标搜索算法讲解(附MATLAB代码)
蚁群算法通俗讲解(附MATLAB代码)
混合粒子群算法通俗讲解(附MATLAB代码)