!此文主要给自己查阅用
!其实matlab帮助文档也挺香的……
一、使用matlab对excel进行读写
方法一:xlsread/xlswrite
(一)xlsread
1. 只读数字:
- num = xlsread(‘filename’)
- num = xlsread(‘filename’,sheet,‘range’)
- num = xlsread(‘filename’,sheet,‘range’,functionhandle)
#使用函数句柄对数据进行处理
以下表为例:
代码:
clear;clc;
num = xlsread('Test233.xls',1,'A1:D6')
输出结果:
num =
2 NaN 99
3 NaN 88
1 NaN 77
4 NaN 66
5 NaN 55
可以发现,num中只包含数字,不包含字符。
2. 数字与字符分存(详见help文档):
- [num,txt,raw] = xlsread(‘filename’,sheet,‘range’);
- [num,txt,raw,X] = xlsread(‘filename’,sheet,‘range’,functionhandle);
其中,num是数字矩阵,txt是元胞数组,raw是未经处理的元胞数组(原excel原封不动复制版),X为额外输出的数值矩阵
代码:
clear;clc;
[n1,t1,r1] = xlsread('Test233.xls',1,'A1:D6')
输出结果:
n1 =
2 NaN 99
3 NaN 88
1 NaN 77
4 NaN 66
5 NaN 55
t1 =
6×4 cell 数组
'姓名' '年级' '寝室' 'Grade'
'Tina' '' 'A-203' ''
'Nina' '' 'B-111' ''
'Kate' '' 'A-101' ''
'Harry' '' 'C-110' ''
'Ron' '' 'C-110' ''
r1 =
6×4 cell 数组
'姓名' '年级' '寝室' 'Grade'
'Tina' [ 2] 'A-203' [ 99]
'Nina' [ 3] 'B-111' [ 88]
'Kate' [ 1] 'A-101' [ 77]
'Harry' [ 4] 'C-110' [ 66]
'Ron' [ 5] 'C-110' [ 55]
(二)xlswrite
1.文件格式:
- .xls Excel 97~2003
- .xlsx Excle 2007
2.写入方法
- xlswrite(‘filename’,M,sheet,‘range’)
- 操作完成情况(成功完成,status返回值为1):
status = xlswrite(‘filename’,…) - 输出write操作过程中的警告和错误信息:
[status,message] = xlswrite(‘filename’,…)
代码:
clear;clc;
[n1,t1] = xlsread('Test233.xls',1,'A1:D6');
xlswrite('TryW.xls',t1,1,'A1:D6')
xlswrite('TryW.xls',n1,1,'B2:B6')
xlswrite('TryW.xls',n1,1,'D2:D6')
[status,message] = xlswrite('TryW.xls',n1,1,'D2:D6')
输出结果:
#这是一个把表格内数据原封不动抄回去的故事
#只是没有对NaN数据进行筛析后再放入……
status =
logical
1
message =
包含以下字段的 struct:
message: ''
identifier: ''
方法二:使用Excel-link宏
- 在excel的‘office按钮’中的‘Excel选项’下,选择‘加载项’,加载Spreadsheet Link EX for use with Matlab
- 若第一次使用,则应点击‘加载项’中的‘选项’,点‘加载宏’,点‘浏览’,在matlab安装目录下“matlab\toolbox\exlink”文件夹中找到“excllink.xla”文件
- 但是安装此宏文件后,打开Excel的时间和开Matlab差不多……
本文主要参考内容:
- 《MATLAB从零到进阶》P221~P234