MATLAB GUI编程中几个有用的程序段
1、??啟動(dòng)
% 獲取當(dāng)前文件所在路徑
currPath = fileparts(mfilename('fullpath'));
% 切換工作路徑到當(dāng)前位置
?
cd(currPath);
?
% 判斷所用操作系統(tǒng)
if computer == 'PCWIN'
????% MATLAB版本號(hào)
????v = version;
????if v(1)~='7'????????
????????warndlg ('Only run in matlab 7.x(R14.x)');
????????return
else
????????% 添加當(dāng)前路徑下的所有子目錄
????????addpath(genpath(pwd));
????????addpath(genpath(currPath));
????end
end
?
?
2、??在GUI中使用Axes控件
?
% 1.刪除所有畫線及對(duì)應(yīng)圖例
% 查找Axes控件中的畫線
sameLines = findobj('type','line');
% 逐一刪除這些畫線
????for i = 1 :length(sameLines)
????????delete(sameLines(i))
end
% 獲取Axes控件中的圖例(由于畫線全部被刪除,因此為空)
lgStr = get(legend(handles.ResultsAxes), 'String');
% 重新設(shè)置圖例(為空)
????legend(handles.ResultsAxes,lgStr);
?
% 2.添加畫線
% 獲取原來(lái)的圖例
lgStr = get(handles.hLegend, 'String');
% 設(shè)置下一個(gè)畫線為添加方式
set(handles.ResultsAxes, 'Nextplot', 'add');
% 指定要畫線的Axes
axes(handles.ResultsAxes);
% 畫線
plot(distance_target, '-r')
% 添加圖例
handles.hLegend = legend(handles.ResultsAxes, lgStr,'目標(biāo)距離');
?
% 3.刪除某一畫線
% 所刪除畫線對(duì)應(yīng)的數(shù)據(jù)為distance_target,獲取它的句柄
sameLines = findobj('type','line','YData', distance_target);
% 刪除畫線
????if ~isempty(sameLines)
????????delete(sameLines);
end
% 獲取原有的圖例
lgStr = get(legend(handles.ResultsAxes), 'String');????????????????????
% 從原有圖例中刪除對(duì)應(yīng)圖例
????legend(handles.ResultsAxes, setdiff(lgStr, {'目標(biāo)距離'}));
?
3、??在GUI中使用Excel表格(Activex控件Microsoft Office Spreedsheet)
% 獲取現(xiàn)在使用的spreedsheet的句柄
ActiveSheet = get(handles.activex1,'ActiveSheet');
?? % 現(xiàn)在使用的spreedsheet的現(xiàn)在使用工作薄
?? ActiveWorkbook = get(handles.activex1,'ActiveWorkbook');????????????
?? % 現(xiàn)在使用的表
eSheets = handles.activex1.ActiveWorkbook.Sheets;
?? % 使用表的第一個(gè)子表
?? eSheet1 = eSheets.get('Item', 1);
?? % 激活該表
?? eSheet1.Activate;
% 獲取當(dāng)前單元格的句柄
ActiveCell = get(handles.activex1, 'ActiveCell');
% 選擇坐標(biāo)為A1的單元格
Select(Range(ActiveSheet,'A1'));
% 獲取當(dāng)前單元格的句柄
ActiveCell = get(handles.activex1, 'ActiveCell');
% 設(shè)置當(dāng)前單元格中的內(nèi)容
????set(ActiveCell, 'Value', '仿真結(jié)果報(bào)告');??
?
4、??為Axes控件設(shè)置圖片
% 所有設(shè)置的Axes控件
axes(handles.MyLog);
% 讀取圖片數(shù)據(jù)
Image_tip1=imread('Setting/mylog.jpg');
% 顯示圖片
image(Image_tip1);
轉(zhuǎn)自:http://www.blogjava.net/dongwq/archive/2009/08/29/125683.html#293090
總結(jié)
以上是生活随笔為你收集整理的MATLAB GUI编程中几个有用的程序段的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 批处理精华教程
- 下一篇: 清华校长送给毕业生的五句话,值得一看!