MATLAB編寫矩陣計算器_第1頁
MATLAB編寫矩陣計算器_第2頁
MATLAB編寫矩陣計算器_第3頁
MATLAB編寫矩陣計算器_第4頁
MATLAB編寫矩陣計算器_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、GUI 開發(fā)環(huán)境簡介MATLAB 提供了一套可視化的創(chuàng)立圖形窗口的工具,使用用戶界面開發(fā)環(huán)境可方便的創(chuàng)立 GUI 應用程序 , 它可以根據(jù)用戶設計的 GUI 布局,自動生成 M 文件的框架,用 戶使用這一框架編制自己的應用程序.圖形用戶界面( Graphical User Interfaces ,GUI )那么是由窗口、光標、按鍵、菜 單、 文字說明等對象( Objects )構成的一個用戶界面.用戶通過一定的方法(如鼠標或鍵 盤)選擇、激活這些圖形對象, 使計算機產(chǎn)生某種動作或變化, 比方實現(xiàn)計算、 繪圖等.、矩陣計算器介紹2.1 程序使用的控件在矩陣計算器設計中主要用到三種控件,文本編輯框

2、( edit text ),靜態(tài)文本框 ( Static text ),命令按鈕( push button ),邊框( panel ).然后在通過各個按鈕的回調(diào) 函數(shù),實現(xiàn)簡單的計算功能.2.2 程序功能介紹(1) 具有用戶圖形界面.實現(xiàn)矩陣的加、減、乘、左除、右除等簡單計算.(2) 有清空鍵,能去除操作.2.3 矩陣計算器界面及主要控件功能注釋:text1 文本編輯框控件功能:輸出要計算公式.如 12 45;78 56+659 238;79 56 MatA 文本編輯框功能:輸入?yún)⑴c計算矩陣AMatB 文本編輯框功能:輸入?yún)⑴c計算矩陣BMatC 靜態(tài)文本框功能:輸出計算結果矩陣CtextlMa

3、tAMatBbutt on2butt on1齊際pushbutto n21ushbutto n22shbutto n23,hbutton24、pushbutton20butto n3butt on4butt on5butt on6calculatepushbutt on11三、局部計算操作結果(1)力口法+(2) 求逆(3)轉(zhuǎn)置(4) 群運算.*四、局部模塊功能算法的實現(xiàn)(1) 按鍵加法+'響應:a=get(ha ndles.matA,'stri ng');textStri ng=strcat(a,'+');b=get(ha ndles.matB,

4、9;stri ng');textStri ng=strcat(textStri ng,b);set(ha ndles.text1,'Stri ng',textStri ng);(2) 按鍵轉(zhuǎn)置響應a=get(ha ndles.matA,'stri ng');textStri ng=strcat(a,"");set(ha ndles.text1,'Stri ng',textStri ng);(3) 按鍵計算'響應textStri ng=get(ha ndles.text1,'Stri ng');f

5、=eval(textStri ng);set(ha ndles.matC,'stri ng', num2str(f,'%15.5g')(5) 按鍵清空響應set(ha ndles.text1,'Stri ng','')set(ha ndles.matA,'Stri ng','')set(ha ndles.matB,'Stri ng','')set(ha ndles.matC,'Stri ng','')注釋:其余模塊功能算法與以上代碼較為

6、相似,不在一一舉例.五、其余傳參方法本程序通過文本編輯框( edit text )到達傳參的目的,下面介紹兩種常用的其他傳參方 式.(1 )運用 global 定義全局變量傳遞參數(shù) 這種方法適用于 gui 內(nèi)控件間以及不同 gui 間,是最簡單的方式. 使用方法: gloal xxxx 在每一個要到該全局變量的地方,都要添一句 gloal xxxx . 缺點:全局變量破壞了程序的封裝性,所以,全局變量是能少用盡量少用.(2 )運用 UserData 傳遞參數(shù)直接通過對象的 userdata 屬性進行各個 callback 之間的數(shù)據(jù)存取操作.首先必須將數(shù) 據(jù)存儲到一個特定的對象中,假設對象的句

7、柄值為 handles.text1, 需要存儲的值為 value, 那么 輸入以下程序即可:set(' handles.text1,'UserData',Value);此時, value 數(shù)據(jù)就存在句柄值為 ui_handle 的對象內(nèi),在執(zhí)行的過程中假設要取回變量 可以通過以下方式在任意 callback 中獲取該數(shù)據(jù)值 :value=get('' handles.text1,'UserData'); 缺點:每個對象僅能存取一個變量值,因此當同一對象存儲兩次變量時 ,先前的變量 值就會被覆蓋掉,因此都用 UserData 存儲簡單與單一

8、的數(shù)據(jù).六、心得這次作業(yè)在 MATLAB GUI 編程中是較為簡單的, 雖然老師當天布置的作業(yè)我當天完成, 但是這期間還是遇到一些困難,比方起初我的程序計算結果矩陣C用文本編輯框(edit text ),我的代碼是正確的,但是卻得不到結果.最后通過上網(wǎng)查資料,解決了該問題.同時我對 MATLAB 有了新的熟悉.1、通過 MATLAB 矩陣計算器的設計,初步了解了關于 MATLAB 圖形用戶界面的局部控件的 使用方法.2、MATLAB的GUI提供的很多實用的控件,方便用于設計屬于自己的圖形界面.3、Matlab 具有強大、豐富的內(nèi)置函數(shù)和工具箱,界面設計時更加簡潔、快捷與直觀.七、詳細代碼fun

9、ction varargout = untitled1(varargin)gui_Singleton = 1;gui_State = struct('gui_Name',m, .'gui_Singleton', gui_Singleton, .'gui_OpeningFcn', untitled1_OpeningFcn, .'gui_OutputFcn', untitled1_OutputFcn, .'gui_LayoutFcn', , .'gui_Callback', );if nargin &a

10、mp;& ischar(varargin1)gui_State.gui_Callback = str2func(varargin1);endif nargoutvarargout1:nargout = gui_mainfcn(gui_State, varargin:); elsegui_mainfcn(gui_State, varargin:);endfunction untitled1_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;guidata(hObject, handles)

11、;function varargout = untitled1_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function calculate_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String');f=eval(textString); set(handles.matC,'string',num2str(f,'%15.5g');function button

12、1_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,'+');b=get(handles.matB,'string');textString=strcat(textString,b); set(handles.text1,'String',textString);function button2_Callback(hObject, eventdata, handles) a=get(handles.matA

13、,'string');textString=strcat(a,'-');b=get(handles.matB,'string');textString=strcat(textString,b); set(handles.text1,'String',textString);function button3_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,'*');b=get(

14、handles.matB,'string'); textString=strcat(textString,b); set(handles.text1,'String',textString);function button4_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,''); b=get(handles.matB,'string'); textString=strcat(textStr

15、ing,b);set(handles.text1,'String',textString);function button5_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,'/'); b=get(handles.matB,'string'); textString=strcat(textString,b);set(handles.text1,'String',textString);fun

16、ction button6_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textStri ng=strcat(a,'A-1');set(handles.text1,'String',textString);function button7_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,'''&

17、#39;);set(handles.text1,'String',textString);function matA_CreateFcn(hObject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')set(hObject,'BackgroundColor','white');endfunction matB_CreateFcn(hO

18、bject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')set(hObject,'BackgroundColor','white');endfunction matC_CreateFcn(hObject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundCo

19、lor'),get(0,'defaultUicontrolBackgroundColor')set(hObject,'BackgroundColor','white');endfunction text10_CreateFcn(hObject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'

20、BackgroundColor','white');endfunction text1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'BackgroundColor','white');endfunction pushbutton11_Callback(h

21、Object, eventdata, handles)set(handles.text1,'String','');set(handles.matA,'String','');set(handles.matB,'String','');set(handles.matC,'String','');function pushbutton20_Callback(hObject, eventdata, handles)a=get(handles.matA,'strin

22、g');textString=strcat(a,'.*');b=get(handles.matB,'string');textString=strcat(textString,b);set(handles.text1,'String',textString);function pushbutton21_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,'./');b=get(handles.matB,'string');textString=strcat(text

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論