資源描述:
《matlabgui初學(xué)者教程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、實(shí)用標(biāo)準(zhǔn)文案什么是GUI呢?GUI是GraphicalUserInterface圖形用戶界面的意思。象很多高級編程語言一樣。Matlab也有圖形用戶界面開發(fā)環(huán)境。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展。人與計(jì)算機(jī)的通信方式也發(fā)生的很大的變化。從原來的命令行通訊方式(例如很早的DOS系統(tǒng))變化到了現(xiàn)在的圖形界面下的交互方式。而現(xiàn)在絕大多數(shù)的應(yīng)用程序都是在圖形化用戶界面下運(yùn)行的。記得讀書的時(shí)候。大學(xué)開學(xué)不久。學(xué)校很多同學(xué)就開始報(bào)考全國計(jì)算機(jī)等級考試了。當(dāng)然我也是其中的一分子。其中C語言是大多數(shù)人選擇的科目。當(dāng)時(shí)在學(xué)C語言的時(shí)候。經(jīng)常也會遇到人機(jī)交互的例子。譬如一個(gè)計(jì)算兩個(gè)數(shù)相加的程序。運(yùn)行程序后便切換到
2、了Dos模式。然后在此模式下輸入兩個(gè)數(shù)。再回車。才能返回運(yùn)算結(jié)果。當(dāng)時(shí)就覺得很不方便。也不友好。后來才得知C語言是面向過程的語言。是非面向?qū)ο蟮恼Z言(VC++,VB,Matlab等是面向?qū)ο蟮模?。那么下面我們就來看看Matlab是如何簡單、快速而友好地解決這類問題的吧。MatlabGUI編程教程(適用于初學(xué)者)1.首先我們新建一個(gè)GUI文件:File/New/GUI如下圖所示;選擇BlankGUI(Default)2.進(jìn)入GUI開發(fā)環(huán)境以后添加兩個(gè)編輯文本框。6個(gè)靜態(tài)文本框。和一個(gè)按鈕。布置如下圖所示;精彩文檔實(shí)用標(biāo)準(zhǔn)文案布置好各控件以后。我們就可以來為這些控件編寫程序來實(shí)現(xiàn)兩數(shù)相加的
3、功能了。3.我們先為數(shù)據(jù)1文本框添加代碼;點(diǎn)擊上圖所示紅色方框。選擇edit1_Callback。光標(biāo)便立刻移到下面這段代碼的位置。functionedit1_Callback(hObject,eventdata,handles)%hObjecthandletoedit1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:get(hObject,'String')returnscontentsofe
4、dit1astext%str2double(get(hObject,'String'))returnscontentsofedit1asadouble然后在上面這段代碼的下面插入如下代碼:%以字符串的形式來存儲數(shù)據(jù)文本框1的內(nèi)容.如果字符串不是數(shù)字。則現(xiàn)實(shí)空白內(nèi)容input=str2num(get(hObject,'String'));%檢查輸入是否為空.如果為空,則默認(rèn)顯示為0if(isempty(input))set(hObject,'String','0')精彩文檔實(shí)用標(biāo)準(zhǔn)文案endguidata(hObject,handles);這段代碼使得輸入被嚴(yán)格限制。我們不能試圖輸入一個(gè)
5、非數(shù)字。4.為edit2_Callback添加同樣一段代碼5現(xiàn)在我們?yōu)橛?jì)算按鈕添加代碼來實(shí)現(xiàn)把數(shù)據(jù)1和數(shù)據(jù)2相加的目的。用3中同樣的方法在m文件中找到pushbutton1_Callback代碼段如下;functionpushbutton1_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA
6、)在上面這段代碼后添加以下代碼;a=get(handles.edit1,'String');b=get(handles.edit2,'String');%aandbarevariablesofStringstype,andneedtobe%convertedtovariablesofNumbertypebeforetheycan%beaddedtogether%str2num(a)+str2num(b);c=num2str(total);%needtoconverttheanswerbackintoStringtypeto%displayitset(handles.text1,'Str
7、ing',c);guidata(hObject,handles);下面我們來對上面這段程序分析一下;a=get(handles.edit1,'String');b=get(handles.edit2,'String');上面這行代碼把用戶輸入的數(shù)據(jù)存入到變量a,變量b中;%a,b是字符型變量。在計(jì)算兩者相加之前需把他們轉(zhuǎn)換為數(shù)字型精彩文檔實(shí)用標(biāo)準(zhǔn)文案total=str2num(a)+str2num(b);這段代碼實(shí)現(xiàn)兩數(shù)相加c=num2str(