




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 7以上版本的matlab,控件pushbutton背景顏色修改以后并沒有什么明顯效果,只是按鈕的邊緣顯示為所設(shè)置的背景顏色。 2 凡是在屬性對話框Property Inspector中可以設(shè)置的屬性,都可以在其對應(yīng)的m文件中使用set(.)函數(shù)來設(shè)置3每個控件的句柄都可以通過handles.tagname來調(diào)用(tagname是所使用的控件的tagname)4控件Edit Text不會自動
2、生成Creatfucntion,只有回調(diào)函數(shù)callback function 5. 控件Static Text也不會自動生成CreatFunction和CallbackFunction,但是可以通過它的句柄handles.tag,對其屬性進(jìn)行修改,例如讓其顯示一些數(shù)字,就可以這么設(shè): set(handles.show,'string',num2str(t); 其中handles.show是一個Sta
3、tic Text控件的句柄6從控件Edit Text中讀取輸入的數(shù)據(jù),使用函數(shù): str2num(get(handles.x1_trn,'string') 其中handles.x1_trn是一個Edit Text的句柄7若想在界面打開的時候顯示一些東西或者執(zhí)行一些動作,可以將程序?qū)懺诤瘮?shù)OpeningFcn內(nèi)。8關(guān)于顯示圖片,如下例:A=imread('trn.bmp');%讀取圖片trn.bmp的信息,存放在A中,此處該圖片是與本函數(shù)存放在同一根目錄下的,若不是,那么需要把圖片的完整路徑寫出來,例如d:pictrn.bmpB=imre
4、ad('stb.bmp');%讀取圖片stb.bmp的信息,存放在A中axes(handles.axes1);%指定顯示圖片的坐標(biāo)系,handles.axes1為其句柄imshow(A);%顯示圖片trn.bmp;axes(handles.axes2); %指定顯示圖片的坐標(biāo)系,handles.axes1為其句柄imshow(B);%顯示圖片stb.bmp顯示圖片還可以用函數(shù)image(),與函數(shù)imshow區(qū)別在于,image是將圖片當(dāng)作數(shù)據(jù)來處理的,會顯示坐標(biāo)系,刻度等等,而imshow只是顯示圖片9關(guān)于global的用法! Global用來聲明變量的通用,有點像C語言中的
5、全局變量,如果要想將變量a聲明為global型的,那么在所有定義和使用a的函數(shù)中都要聲明:global a;還有就是要使用global變量的函數(shù)都必須在同一根目錄下。 10要想在一個m文件中調(diào)用另外一個m文件,只需將該文件存放在同一根目錄下,然后直接在前一m文件中寫下要調(diào)用的m文件的名字即可。MATLAB GUI編程中幾個有用的程序段1、 啟動% 獲取當(dāng)前文件所在路徑currPath = (m('fullpath');% 切換工作路徑到當(dāng)前位置cd(currPath);% 判斷所用操作系統(tǒng)if computer = 'PC
6、WIN' % MATLAB版本號 v = version; if v(1)='7' warndlg ('Only run in matlab 7.x(R14.x)');
7、0; returnelse % 添加當(dāng)前路徑下的所有子目錄 addpath(genpath(pwd); addpath(genpath(currPath); endend2、 在GUI中使用Axes控件%
8、 1.刪除所有畫線及對應(yīng)圖例% 查找Axes控件中的畫線sameLines = findobj('type','line');% 逐一刪除這些畫線 for i = 1 :length(sameLines) delete(sameLines(i)end% 獲取Axes控件中的圖例(由于畫線全部被刪除,因此為空)lgStr = get(legend(handles.ResultsAxes), 'String'
9、);% 重新設(shè)置圖例(為空) legend(handles.ResultsAxes,lgStr);% 2.添加畫線% 獲取原來的圖例lgStr = get(handles.hLegend, 'String');% 設(shè)置下一個畫線為添加方式set(handles.ResultsAxes, 'Nextplot', 'add');% 指定要畫線的Axesaxes(handles.ResultsAxes);% 畫線plot(distance_target, '-r')% 添加圖例handle
10、s.hLegend = legend(handles.ResultsAxes, lgStr,'目標(biāo)距離');% 3.刪除某一畫線% 所刪除畫線對應(yīng)的數(shù)據(jù)為distance_target,獲取它的句柄sameLines = findobj('type','line','YData', distance_target);% 刪除畫線 if isempty(sameLines) delete(s
11、ameLines);end% 獲取原有的圖例lgStr = get(legend(handles.ResultsAxes), 'String'); % 從原有圖例中刪除對應(yīng)圖例 legend(handles.ResultsAxes, setdiff(lgStr, '目標(biāo)距離');3
12、、 在GUI中使用Excel表格(Activex控件Microsoft Office Spreedsheet)% 獲取現(xiàn)在使用的spreedsheet的句柄ActiveSheet = get(handles.activex1,'ActiveSheet'); % 現(xiàn)在使用的spreedsheet的現(xiàn)在使用工作薄 ActiveWorkbook = get(handles.activex1,'ActiveWorkbook');
13、 % 現(xiàn)在使用的表eSheets = handles.activex1.ActiveWorkbook.Sheets; % 使用表的第一個子表 eSheet1 = eSheets.get('Item', 1); % 激活該表 eSheet1.Activate;% 獲取當(dāng)前單元格的句柄ActiveCell = get(handles.activex1, 'ActiveCell'
14、);% 選擇坐標(biāo)為A1的單元格Select(Range(ActiveSheet,'A1');% 獲取當(dāng)前單元格的句柄ActiveCell = get(handles.activex1, 'ActiveCell');% 設(shè)置當(dāng)前單元格中的內(nèi)容 set(ActiveCell, 'Value', '仿真結(jié)果報告'); 4、 為Axes控件設(shè)置圖片% 所有設(shè)置的Axes控件axes(handles.MyLog);% 讀取圖片數(shù)據(jù)Image_tip
15、1=imread('Setting/mylog.jpg');% 顯示圖片image(Image_tip1);Matlab程序生成可執(zhí)行的exe文件1.設(shè)置編譯器:在確定安裝好Matlab Compiler后,還需要對Compiler進(jìn)行適當(dāng)?shù)呐渲?,方法是在Matlab命令窗口輸入:Mbuild setup, 按提示選擇matlab自帶編譯器LCC。2.將腳本編譯為可執(zhí)行文件:如項目文件包含:gui.m, gui.gif, fun1.m。在 此路徑下命令行輸入:mcc m gui.m,生 成:mccExcluded,ReadMe.txt,gui.ctf,gui.prj,gui_m
16、ain.c,gui_mcc_component_data.c,gui.exe。 其中:gui.ctf,gui.exe為脫離matlab環(huán)境運行必需的文件。3.在未安裝matlab的機(jī)器上運行可執(zhí)行程序。將R22007btoolboxcompilerdeploywin32中的MCRinstaller.exe安裝到該計算機(jī)上,將生成可執(zhí)行程序脫離matlab運行所需的函數(shù)庫。將2中生成的gui.ctf,gui.exe拷貝到該計算機(jī)同一路徑。運行g(shù)ui.exe將生成gui_mcr文件夾,包含程序運行所需的庫。至此完成。4.去除獨立可執(zhí)行程序運行時的“DOS黑窗口”。以上生成的exe程序運行時首先彈出
17、一個DOS界面窗口,如果不需要其輸出數(shù)據(jù)和錯誤信息,可將其去除。matlba命令行輸入:cd(prefdir)edit compopts.bat此時compopts.bat打開,在文件最后添加:set LINKFLAGS=%LINKFLAGS% -subsystem windows如果程序比較復(fù)雜,易出現(xiàn)異常,則不建議去除這個dos窗口以便調(diào)試。另外,這個辦法是適用于你用的編譯器為LCC,如果是其他的,那么所加語句有所不同Microsoft Visual C/C+:set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartu
18、pBorland:set LINKFLAGS=%LINKFLAGS% -aa5.遇到某些函數(shù)不能使用的問題。我的程序中用到vpa函數(shù),運行g(shù)ui.exe出現(xiàn):undefined method or function 'vpa' for input argument type of 'double'錯誤提示。而gui.m腳本在matlab環(huán)境可以運行。原因:百度搜到的信息為:matlab不支持符號工具箱的編譯。只好避開使用此函數(shù)。問題描述:在matlab環(huán)境下運行完全正常的gui,用"mcc -m “編譯成獨立可執(zhí)行程序后,所有u
19、itable控件無法按要求正常顯示數(shù)據(jù),顯示結(jié)果是一個空表格問題原因:不詳(沒有仔細(xì)讀那些帖子,英文看著太累。只求問題解決,不想成為專家,呵呵)解決辦法:1、編譯時將所有自己編寫的.m 及.fig文件全部放在同一個文件夾內(nèi)(假設(shè)有 ),光這些還不夠,需要從.toolboxmatlabcodetools文件夾中找到兩個文件arrayviewfunc.m和workspacefunc.m,將它們也一并拷過來。找不到可直接在matlab安裝目錄下搜索。2、然后用命令"mcc -m -a work
20、spacefunc.m -a arrayviewfunc.m ”進(jìn)行編譯,不需要將.fig文件一起編譯。其中是主程序。3、編譯成功,運行一切正常,table完全按要求想顯示什么就顯示什么,一個字,爽。一、生成獨立可執(zhí)行的程序(exe文件)步驟 1、安裝編譯器。可有多種選擇,本機(jī)安裝的是microsoft visual c+ 6.0; 2、設(shè)置編譯器。在matlab命令行輸入mbuild -setup,選擇安裝的c編譯器; 3、調(diào)用編譯器。輸入mcc -m filaname,filanam
21、e為要轉(zhuǎn)成exe的m文件; 在以前的版本中,用編譯命令mcc -B sglcpp filaname;自2006的版本后,替換為mcc -m filaname; 4、安裝MATLAB7toolboxcompilerdeploywin32目錄下的MCRInstaller。 二、脫離matlab運行可執(zhí)行程序 MCR是由matlab的運行環(huán)境,占用不到400M的對于用不同matlab版本生成的exe文件,MCR版本也會有不同,因此,在程序打包時,最好將相應(yīng)
22、版本的MCR一起打包。MCR環(huán)境的設(shè)置文件存放目錄如下: MATLABR2007atoolboxcompilerdeploywin32文件名為MCRInstaller.exe??蓪⑵淇截惖阶约旱奈募A中。 在其它機(jī)器上運行exe文件前,首先安裝matlab的運行環(huán)境。在同一機(jī)器上可以并存不同版本的matlab環(huán)境。Note: 將MCRInstaller.exe拷貝到你文件所在文件夾
23、里,用打包程序來打包,生成安裝文件,設(shè)定在解包過程中自動執(zhí)行MCRInstaller.exe,同時將可執(zhí)行文件的圖標(biāo)放在桌面。另外,也可通過采用命令開關(guān)-o指定編譯最終目標(biāo)文件的名稱,如 mcc m main.m o mrank_main,就是將編譯后的文件指定為mrank_main.exe。uitable(在GUI界面上添加指定屬性表格) 用法:1、uitable(numrows,numcolumns) 建立指定行數(shù)和列數(shù)的表格 2、uitable(data,columnNames) 建立指定行名稱和數(shù)據(jù)的的表格 3、uitable(PropertyName1,Value1,¨¨)建立指定的屬性名稱和屬性值的表格Ø注意事項:Editable屬性須用set命令設(shè)置,否則導(dǎo)致表格不可見屬性 功能Column names 字符串細(xì)胞數(shù)組來定義窗體的名稱Data 以細(xì)胞數(shù)組值來定義顯示在窗體內(nèi)的數(shù)據(jù)內(nèi)容GridColor以顏色值或RGB向量來定義uitable內(nèi)網(wǎng)格的顏色NumColumns以整數(shù)來定義窗體的行數(shù)NumRows以整數(shù)來定義窗體的列數(shù)Parent父窗口的句柄值,如果未定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3-4-Dichloromethcathinone-hydrochloride-生命科學(xué)試劑-MCE
- 商戶門面租房合同范本
- 車隊司機(jī)合同范本
- 汽車油漆采購合同范本
- 拿貨購銷合同范本
- 電梯標(biāo)準(zhǔn)施工合同范本
- 設(shè)備采購合同范本8篇
- 2025年碳酸乙烯酯項目發(fā)展計劃
- 2025年溫泉水開發(fā)利用項目發(fā)展計劃
- 2025年防眩光太陽鏡合作協(xié)議書
- 各種el34名膽電子管評測
- 超分子化學(xué)-杯芳烴課件
- 車標(biāo)識別 課講義件課件
- 一年級下學(xué)期安全教育教案
- 哈薩克斯坦共和國勞動法解讀
- 送達(dá)地址確認(rèn)書(樣本)
- 甘肅省酒泉市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)
- 壓力容器考試審核考試題庫(容標(biāo)委-氣體協(xié)會聯(lián)合)
- 學(xué)校食堂操作流程圖
- DB13 2795-2018 大清河流域水污染物排放標(biāo)準(zhǔn)
- 2022年t-a水性聚氨酯粘合劑項目環(huán)境影響報告書
評論
0/150
提交評論