MATLAB生物化工计算与模拟
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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键,nw被载入工作区。

需要注意的是,每次关闭MATLAB程序就会将工作区中的变量清空,如果经常用到该变量,可以将该变量保存为MAT文件。若点击“工作区”,按右键,点击“保存”,命名为插值-折光率,则在“当前文件夹”出现“插值-折光率.mat”文件,如图1-22所示。这样每次打开MATLAB,只要在“当前文件夹”双击“插值-折光率.mat”文件,便可以将nw变量导入工作区。

图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表中“科学计数”格式转换为“数值”格式,只需选中数据,点击右键,选择“设置单元格格式/数字/数值”即可。