目录
1 xlsread函数
2 load命令可以加载mat文件
3 textread函数
4 MATLAB与excel 的交互
4.1 向excel表格中写入数据
4.2 从excel中读入数据
4.3 清除表格中已经写入的数据
4.4 举例说明
读取EXCEL文件,xls、xlsx、csv格式文件都可以读取
格式:[X1,X2,X3]=xlsread('shuju.xlsx')
X1返回数值并用矩阵储存,X2返回文本并用元胞数组储存,X3返回所有并用元胞数组储存
元胞数组可以储存多种格式的数据,例如X3{1,1}输出的是字符串,而X3{2,1}输出的是数值
(1)原数据:
(2)读取结果:
matlab右边工作区可以看到过程数据,可以通过save命令保存某些矩阵,或全部矩阵数据,储存后的文件带有.mat后缀
save + 空格 + 文件名称 储存当前工作区中的所有矩阵数据:
save shuju
save + 空格 + 文件名称 +矩阵名称 储存当前工作区中X2和X3矩阵:
save shuju X2 X3
通过load命令可以加载mat文件:
load shuju.mat
读取txt中的数值数据,但如果存在字符则会报错
格式:X1=textread('shuju.txt') 或 load shuju.txt
字符+数值的txt文本可以通过fopen、fread、native2unicode函数读取,但读取过程较为复杂,建议将此类数据存放于excel表格进行读取,如果仅是数据,则通过load命令更为快捷。
在使用MATLAB时,可能会遇到很多表格数据的处理,有时MATLAB也需要利用现存的表格数据实现操作目的。这时,就需要建立excel表格与MATLAB的交互作用。本文总结了MATLAB向excel写入数据及从excel读出数据的基本操作方法,掌握这些后再遇到此类情况便可像如鱼得水般运用自如。
(1)简单地将数据输入到指定excel中
xlswrite('data.xlsx',A); 或者 xlswtrite('data.xls',A);
PS:表格名称后缀.xlsx与.xls并无差别,只是excel版本的不同。其中,后缀.xlsx是07版本之后的后缀,而后缀.xls则为03版本前的后缀,07版本可兼容03版本。
PS:在执行此命令时,不必自己新建立一个excel表格,MATLAB会自动建立一个当前目录下的excel表格,例如上述的data.xls。
PS:在excel表格中输入的数据格式与矩阵A 的格式相同,即行与列一一对应。
(2)数据写入指定的sheet中
xlswrite('data.xlsx',A,2)
%将矩阵A 的数据写入名为data的excel表格第二个sheet中(注意,这里是第二个sheet而不是sheet2)。
(3)数据写入指定的sheet中的指定位置
xlwrite('data.xlsx',A,3,'B3:F4')
%矩阵A的数据写入第三个sheet中,并且初始位置为B3,终止位置为F5。
利用xlsread函数,用法与xlswrite用法类似:
例:
A=xlsread('data1.xls') %将表格data1中的数据读入到矩阵A中。
A=xlsread('data1.xls',2,'A3:C9') % 将表格data1中的第二个sheet的A3至C9内的数据读入到矩阵A中。
PS:若从表格中读入的数据中含有字母或者文字,则读出相应位置的数据会变成NaN。
PS:当excel表格中含有表格标题时,可以直接输入标题。
例:
data1=xlsread('grades.xls','GPA') %其中GPA为相应表格的标题
[data1,headertext]=xlsread('grades.xls','GPA') %其中headertext返回表格GPA中的表格头。
利用程序:
x=' ';
xlswrite('data1.xlsx',x,'A1:Z100'); %将表格data1中位于A1至Z100间的数据用空格代替
例:将矩阵A的数据输入到csv表格中:
clc
clear
A=[1 2 3 1 4 1 9 0 2;4 2 5 2 5 2 6 2 6];
xlswrite('data.csv',A)
此时,在当前目录下,MATLAB会自动创建一个data.csv文件,而输入的矩阵A便保存在此csv文件中。双击此文件可以看到如下格式:
如果希望将此csv表格的数据读入到MATLAB中,可以继续输入命令:
clc
clear
A=[1 2 3 1 4 1 9 0 2;4 2 5 2 5 2 6 2 6];
B=xlsread('data.csv')
以上就是MATLAB与excel之间的交互,有了这些命令,可以很方便地将MATLAB运行的矩阵结果输入到excel中并加以利用,同时,也可以将excel表格中记录的数据导入到MATLAB中进行分析处理。