1.4 数据导入与导出
MATLAB的数据导入与导出有许多方法,本节通过实例介绍几种简便方法。
1.4.1 数据导入
① 在MATLAB命令行窗口直接输入数据。
【例1-20】在命令窗口输入:
clear
n=[1.379 1.3755 1.3712 1.369 1.3668 1.3657 1.364 1.362 1.3607
1.3593 1.3581 1.3574];
w=[0.1974 0.295 0.3977 0.497 0.599 0.6445 0.7101 0.7983 0.8442 0.9064 0.9509 1];
按Enter键,n及w被载入工作区。
需要注意的是,每次关闭MATLAB程序就会将工作区中的变量清空,如果经常用到该变量,可以将该变量保存为MAT文件。若点击“工作区”,按右键,点击“保存”,命名为插值-折光率,则在“当前文件夹”出现“插值-折光率.mat”文件,如图1-22所示。这样每次打开MATLAB,只要在“当前文件夹”双击“插值-折光率.mat”文件,便可以将n及w变量导入工作区。
图1-22 保存“工作区”数据界面
或者在命令行窗口加载数据,如在命令窗口输入:
>> load(‘插值-折光率.mat')
② 在MATLAB工作区直接输入数据,输入示例见第5章【例5-6】。
③ 将文本文件数据输入到工作区。
方法1:点击标签页“主页(Home)/导入数据(Import Data)”按钮,输入示例见第5章【例5-9】。
方法2:调用格式:load(文件名)。
【例1-21】若文本数据文件在当前路径(D:\我的文档\MATLAB)下,名为“Fermantation Data.txt”,见图1-23。
在命令行窗口输入:
>> load(‘FermantationData.txt’); %将FermantationData.txt文件载入MATLAB环境中
t= FermantationData (:,1); %发酵时间
x= FermantationData (:,2); %菌体浓度
s= FermantationData (:,3); %底物浓度 p= FermantationData (:,4); %产物浓度
图1-23 文本数据界面
按Enter键,在工作区出现相应的变量,如图1-24所示。
图1-24 “FermantationData.txt”文件载入MATLAB环境界面
若文本文件不在当前目录(current directory)下,可以改变目录,或者指定带有完整位置字符串的文件。
④ 将Excel电子表格数据输入到工作区。
在使用MATLAB对矩阵进行数据处理时,为了方便编辑与修改,常常需要先将数据录入到Excel中,然后再将其导入到MATLAB中参与矩阵运算。Excel数据文件扩展名为xls或xlsx。
方法1:点击标签页“主页(Home)/导入数据(Import Data)”按钮。
将当前路径的Excel数据导入MATLAB,输入示例见第5章【例5-8】。
将不在当前路径的Excel数据导入MATLAB ,输入示例见第5章【例5-7】。
方法2:用“xlsread”作为读取Excel文件的命令。
调用格式:ndata=xlsread(文件名)。
【例1-22】Excel电子表格数据文件在当前路径(D:\我的文档\MATLAB)下,名为“发酵数据.xlsx”,该表格文件含有2个数据表,见图1-25。
在命令行窗口输入:
>> ndata=xlsread(‘发酵数据')
图1-25 “发酵数据.xlsx”电子表格数据界面
按Enter键,输出结果为:
ndata =
0 0.0060 36.0010 0
4.0000 0.0470 35.7880 0.0060
8.0000 0.5110 34.7350 0.0080
12.0000 2.0700 32.2150 0.0090
16.0000 3.1700 27.1870 0.0300
20.0000 3.9440 20.5930 0.1390 24.0000 4.2830 10.8020 0.6050
从中可以看出,“xlsread”忽略了标题栏。在命令行窗口输入:
>>[ndata,text] =xlsread(‘发酵数据')
按Enter键,在命令行窗口显示:
ndata =
0 0.0060 36.0010 0
4.0000 0.0470 35.7880 0.0060
8.0000 0.5110 34.7350 0.0080
12.0000 2.0700 32.2150 0.0090
16.0000 3.1700 27.1870 0.0300
20.0000 3.9440 20.5930 0.1390
24.0000 4.2830 10.8020 0.6050
text =
1×4 cell 数组 ’t’ ’X’ ’S’ ’P’
若电子表格中含有不止一个表,上述表达式将自动输入第一个表。为了获得电子表格中的其他表,需要指出具体表格。如需要将“发酵数据.xlsx”的电子表格sheet2数据输入到工作区,在命令行窗口输入:
ndata=xlsread(‘发酵数据','sheet2')
按Enter键,在命令行窗口显示:
ndata =
0 6.2200
2.0000 6.0200
4.0000 6.0100
6.0000 6.0200
8.0000 6.0800
10.0000 6.0300
若只需要电子表格中特定区域数据,如电子表格“发酵数据.xlsx”的第2张表,需要加载A1至B4单元格数据及标题栏。在命令行窗口输入:
[ndata,text] =xlsread(‘D:\我的文档\MATLAB\发酵数据','sheet2','A1:B4’)
按Enter键,在命令行窗口显示:
ndata =
0 6.2200
2.0000 6.0200
4.0000 6.0100
text =
1×2 cell 数组 ’t’ ’pH’
1.4.2 数据导出
在命令行窗口输入:
>>B=[1,2,3;3,2,1]; %计算结果在MATLAB中被保存为B矩阵
按Enter键。
(1)MATLAB数据导出至文本文件
在命令行窗口输入:
>>save liu.txt B -ascii -tabs %把矩阵B的数据,导出到txt文件中,名字为liu.txt
按Enter键,矩阵B以名字为liu.txt被保存在当前路径(D:\我的文档\MATLAB)下。
(2)MATLAB数据导出至Excel电子表格
① 直接转为xls文件。在命令行窗口输入:
>>save liuliu.xls B -ascii -tabs %把矩阵B的数据,导出到Excel文件中,名字为liuliu.xls
按Enter键,矩阵B以名字为liuliu. xls被保存在当前路径(D:\我的文档\MATLAB)下。
② 先存为txt文件,再转为xls文件。比如将上述liu.txt文件转为xls文件,只需新建一个EXCEL文档并打开,点击菜单中的“文件/打开”,选择具体路径(D:\我的文档\MATLAB)下“liu.txt”,按照提示点击“下一步”至“完成”,最后保存数据到EXCEL中。
要将EXCEL表中“科学计数”格式转换为“数值”格式,只需选中数据,点击右键,选择“设置单元格格式/数字/数值”即可。