- MATLAB生物化工計(jì)算與模擬
- 劉俏
- 1598字
- 2020-02-26 13:34:42
1.4 數(shù)據(jù)導(dǎo)入與導(dǎo)出
MATLAB的數(shù)據(jù)導(dǎo)入與導(dǎo)出有許多方法,本節(jié)通過實(shí)例介紹幾種簡便方法。
1.4.1 數(shù)據(jù)導(dǎo)入
① 在MATLAB命令行窗口直接輸入數(shù)據(jù)。
【例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被載入工作區(qū)。
需要注意的是,每次關(guān)閉MATLAB程序就會(huì)將工作區(qū)中的變量清空,如果經(jīng)常用到該變量,可以將該變量保存為MAT文件。若點(diǎn)擊“工作區(qū)”,按右鍵,點(diǎn)擊“保存”,命名為插值-折光率,則在“當(dāng)前文件夾”出現(xiàn)“插值-折光率.mat”文件,如圖1-22所示。這樣每次打開MATLAB,只要在“當(dāng)前文件夾”雙擊“插值-折光率.mat”文件,便可以將n及w變量導(dǎo)入工作區(qū)。
圖1-22 保存“工作區(qū)”數(shù)據(jù)界面
或者在命令行窗口加載數(shù)據(jù),如在命令窗口輸入:
>> load(‘插值-折光率.mat')
② 在MATLAB工作區(qū)直接輸入數(shù)據(jù),輸入示例見第5章【例5-6】。
③ 將文本文件數(shù)據(jù)輸入到工作區(qū)。
方法1:點(diǎn)擊標(biāo)簽頁“主頁(Home)/導(dǎo)入數(shù)據(jù)(Import Data)”按鈕,輸入示例見第5章【例5-9】。
方法2:調(diào)用格式:load(文件名)。
【例1-21】若文本數(shù)據(jù)文件在當(dāng)前路徑(D:\我的文檔\MATLAB)下,名為“Fermantation Data.txt”,見圖1-23。
在命令行窗口輸入:
>> load(‘FermantationData.txt’); %將FermantationData.txt文件載入MATLAB環(huán)境中
t= FermantationData (:,1); %發(fā)酵時(shí)間
x= FermantationData (:,2); %菌體濃度
s= FermantationData (:,3); %底物濃度 p= FermantationData (:,4); %產(chǎn)物濃度
圖1-23 文本數(shù)據(jù)界面
按Enter鍵,在工作區(qū)出現(xiàn)相應(yīng)的變量,如圖1-24所示。
圖1-24 “FermantationData.txt”文件載入MATLAB環(huán)境界面
若文本文件不在當(dāng)前目錄(current directory)下,可以改變目錄,或者指定帶有完整位置字符串的文件。
④ 將Excel電子表格數(shù)據(jù)輸入到工作區(qū)。
在使用MATLAB對矩陣進(jìn)行數(shù)據(jù)處理時(shí),為了方便編輯與修改,常常需要先將數(shù)據(jù)錄入到Excel中,然后再將其導(dǎo)入到MATLAB中參與矩陣運(yùn)算。Excel數(shù)據(jù)文件擴(kuò)展名為xls或xlsx。
方法1:點(diǎn)擊標(biāo)簽頁“主頁(Home)/導(dǎo)入數(shù)據(jù)(Import Data)”按鈕。
將當(dāng)前路徑的Excel數(shù)據(jù)導(dǎo)入MATLAB,輸入示例見第5章【例5-8】。
將不在當(dāng)前路徑的Excel數(shù)據(jù)導(dǎo)入MATLAB ,輸入示例見第5章【例5-7】。
方法2:用“xlsread”作為讀取Excel文件的命令?!?/p>
調(diào)用格式:ndata=xlsread(文件名)。
【例1-22】Excel電子表格數(shù)據(jù)文件在當(dāng)前路徑(D:\我的文檔\MATLAB)下,名為“發(fā)酵數(shù)據(jù).xlsx”,該表格文件含有2個(gè)數(shù)據(jù)表,見圖1-25。
在命令行窗口輸入:
>> ndata=xlsread(‘發(fā)酵數(shù)據(jù)')
圖1-25 “發(fā)酵數(shù)據(jù).xlsx”電子表格數(shù)據(jù)界面
按Enter鍵,輸出結(jié)果為:
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”忽略了標(biāo)題欄。在命令行窗口輸入:
>>[ndata,text] =xlsread(‘發(fā)酵數(shù)據(jù)')
按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 數(shù)組 ’t’ ’X’ ’S’ ’P’
若電子表格中含有不止一個(gè)表,上述表達(dá)式將自動(dòng)輸入第一個(gè)表。為了獲得電子表格中的其他表,需要指出具體表格。如需要將“發(fā)酵數(shù)據(jù).xlsx”的電子表格sheet2數(shù)據(jù)輸入到工作區(qū),在命令行窗口輸入:
ndata=xlsread(‘發(fā)酵數(shù)據(jù)','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
若只需要電子表格中特定區(qū)域數(shù)據(jù),如電子表格“發(fā)酵數(shù)據(jù).xlsx”的第2張表,需要加載A1至B4單元格數(shù)據(jù)及標(biāo)題欄。在命令行窗口輸入:
[ndata,text] =xlsread(‘D:\我的文檔\MATLAB\發(fā)酵數(shù)據(jù)','sheet2','A1:B4’)
按Enter鍵,在命令行窗口顯示:
ndata =
0 6.2200
2.0000 6.0200
4.0000 6.0100
text =
1×2 cell 數(shù)組 ’t’ ’pH’
1.4.2 數(shù)據(jù)導(dǎo)出
在命令行窗口輸入:
>>B=[1,2,3;3,2,1]; %計(jì)算結(jié)果在MATLAB中被保存為B矩陣
按Enter鍵。
(1)MATLAB數(shù)據(jù)導(dǎo)出至文本文件
在命令行窗口輸入:
>>save liu.txt B -ascii -tabs %把矩陣B的數(shù)據(jù),導(dǎo)出到txt文件中,名字為liu.txt
按Enter鍵,矩陣B以名字為liu.txt被保存在當(dāng)前路徑(D:\我的文檔\MATLAB)下。
(2)MATLAB數(shù)據(jù)導(dǎo)出至Excel電子表格
① 直接轉(zhuǎn)為xls文件。在命令行窗口輸入:
>>save liuliu.xls B -ascii -tabs %把矩陣B的數(shù)據(jù),導(dǎo)出到Excel文件中,名字為liuliu.xls
按Enter鍵,矩陣B以名字為liuliu. xls被保存在當(dāng)前路徑(D:\我的文檔\MATLAB)下。
② 先存為txt文件,再轉(zhuǎn)為xls文件。比如將上述liu.txt文件轉(zhuǎn)為xls文件,只需新建一個(gè)EXCEL文檔并打開,點(diǎn)擊菜單中的“文件/打開”,選擇具體路徑(D:\我的文檔\MATLAB)下“l(fā)iu.txt”,按照提示點(diǎn)擊“下一步”至“完成”,最后保存數(shù)據(jù)到EXCEL中。
要將EXCEL表中“科學(xué)計(jì)數(shù)”格式轉(zhuǎn)換為“數(shù)值”格式,只需選中數(shù)據(jù),點(diǎn)擊右鍵,選擇“設(shè)置單元格格式/數(shù)字/數(shù)值”即可。