
摘 要 結合實驗室試劑管理的經驗與實踐,介紹了利用xlswrite和xlsread函數實現MATLAB與Excel數據交互的方法在試劑管理中的應用。
關鍵詞 MATLAB Excel 數據交互 試劑管理
作為高校從事教學和科研的主要基地,實驗室狀況成為反映學校教學、科研及管理水平的重要標志。由于高校每年消耗的化學試劑種類繁多、性質復雜、數量較大,僅靠管理員手工記錄已無法滿足日常的工作需要,易導致試劑管理的混亂,如無法及時更新出入庫信息、無法動態監控試劑的使用情況、無法實現新舊試劑的有序使用、無法準確判斷試劑準確位置等諸多問題。因此如何提高實驗室工作效率并實現科學化管理成為高校教學改革工作關注的重點。實驗室試劑的管理涉及大量數據的分類、統計與分析,這促使我們在實際的工作中嘗試利用目前流行的數據處理軟件MATLAB和Excel設計試劑管理系統,以期達到事半功倍的效果。
一、MATLAB與Excel數據交互方式
作為高性能的科學與工程計算、辦公軟件,MATLAB與Excel的結合能夠充分發揮兩者在數值計算和表格處理上的優勢,為實際工作帶來方便。目前,兩者間的數據共享有兩種常用方式:一是通過安裝Excel Link插件在Excel環境下直接調用MATLAB函數實現數據交換;二是利用xlsread和xlswrite函數在MATLAB環境下完成對Excel文件的數據處理,這也是本文工作采用的方法。
xlsread函數讀取Excel表格的一般格式為[num,txt,raw] = xlsread(' filename', sheet, 'range'),即讀取文件名為filename的Excel文件中sheet頁面數據表格的range區域,并將其中的數值類型的數據、文本數據和所有數據分別返回給矩陣num、txt和raw。xlswrite函數寫入Excel表格的一般格式為xlswrite(' filename', M, sheet, ' range'),即將矩陣M寫入文件名為filename的Excel文件中sheet頁面數據表格的range區域。下面,我們就以試劑的查詢、入庫與出庫、統計等功能為例介紹xlsread和xlswrite函數實現數據交互的方式在實驗室試劑管理中的應用。
二、實驗室試劑管理的應用舉例
(一)試劑的查詢
實驗室試劑種類繁多,并且通常會根據試劑的不同性質分類存放以實現安全管理。為了能夠更好地為實驗任課教師服務,幫助他們迅速找到自己所需試劑的相關信息,我們以圖1的Excel工作表為例,利用xlsread和strmatch函數實現了試劑的查詢功能,源程序如下:
圖1 實驗試劑.xls工作表的內容
[num,txt,raw] = xlsread('實驗試劑.xls',1,'A1:F4');
bb=strmatch('試劑3' , txt);
x1=raw(bb,1);
x2=raw(bb,2);
x3=raw(bb,4);
str1=sprintf('%s','試劑為:',x1{:});
str2=sprintf('%s','規格為:',x2{:});
str3=sprintf('%s','擺放位置為:',x3{:});
disp(str1); disp(str2); disp(str3);
fprintf('\n')
運行以上程序,可給出實驗試劑.xls工作表中試劑3相關的規格、位置等信息。
(二)試劑的入庫與出庫
實驗室試劑流通量大,為了做好試劑的入庫與出庫記錄并及時更新試劑信息,提高試劑管理的效率,我們利用xlsread、xlswrite、strmatch和strcat函數實現了對入庫與出庫試劑相應信息的修改功能,源程序如下:
[num,txt,raw] = xlsread('實驗試劑.xls',1,'A1:F4');
bb=strmatch('試劑3' , txt)
aa=-2; %試劑改變的數量,如新到,則為正值;若消耗,則為負值
x1=num(bb-1,1)+aa; %根據改變的數量重新計算更變后的試劑數量
if aa>=0 %新到試劑,試劑數量增加
xlswrite('實驗試劑.xls',x1,1,strcat(['C' num2str(bb)]));
end
if aa<0 %消耗試劑,試劑數量減少且累計使用試劑數量增加
x2=num(bb-1,4)+abs(aa);
xlswrite('實驗試劑.xls',x1,1,strcat(['C' num2str(bb)]));
xlswrite('實驗試劑.xls',x2,1,strcat(['F' num2str(bb)]));
end
運行以上程序,實驗試劑.xls工作表中試劑3的數量及累計使用數量信息分別變為1和15。
(三)試劑的統計
實驗室試劑用量多消耗大,為了及時購進、補充實驗試劑以保證正常實驗教學秩序,同時對試劑的采購加以控制防止浪費,我們利用xlsread函數和for及if語句實現了試劑預警及高消耗試劑的篩選功能,源程序如下:
[num,txt,raw] = xlsread('實驗試劑.xls',1,'A1:F4');
aa=2; %試劑預警的下限
bb=13; %試劑高消耗的數量
for ii=1:length(num)
if num(ii,1)<=aa
m=raw(ii+1,1);
n=raw(ii+1,2);
str1=sprintf('%s','庫存不足的試劑為:',m{:});
str2=sprintf('%s','對應的規格為:',n{:});
disp(str1); disp(str2);
fprintf('\n')
end
end
fprintf('\n')
for jj=1:length(num)
if num(jj,4)>=bb
m11=raw(jj+1,1);
n11=raw(jj+1,2);
str1=sprintf('%s','消耗量較大的試劑為:',m11{:});
str2=sprintf('%s','對應的規格為:',n11{:});
disp(str1); disp(str2);
fprintf('\n')
end
end
運行以上程序,便可篩選出實驗試劑.xls工作表中試劑1、2的數量過少及試劑3的消耗量過大,從而輔助管理員對試劑進行統籌安排。
三、結語
高校實驗室試劑的合理、高效、安全的管理是高校實驗室管理及安全工作的重要組成部分,為了保障高校實驗教學和科研的順利開展,我們利用MATLAB與Excel軟件的數據交互完成了試劑的查詢、入庫、出庫、統計和篩選等工作,從而大大提高了工作效率,降低了管理難度,實現了實驗室試劑的科學化管理。
參考文獻:
[1]楊高波,亓波.精通MATLAB7.0混合編程[M].電子工業出版社,2006.
[2]粟智,翁之望.Excel與MATLAB的鏈接及其在化學中的應用[J].新疆師范大學學報(自然科學版),2003(02).
[3]羅天添,劉書豪.Matlab-Excel數據交換方法與實例[J].電腦編程技巧與維護,2010(18).
[4]寇金寶,洪林,李德勝.實現MATLAB與Excel數據交互的一種可行方法[J].天津職業大學學報,2010(2).
(作者單位:胡波,重慶郵電大學生物信息學院;張鵬,重慶郵電大學教務處)