1、 啟動
% 獲取當前文件所在路徑
currPath = fileparts(mfilename('fullpath'));
% 切換工作路徑到當前位置
cd(currPath);
% 判斷所用操作系統
if computer == 'PCWIN'
% MATLAB版本號
v = version;
if v(1)~='7'
warndlg ('Only run in matlab 7.x(R14.x)');
return
else
% 添加當前路徑下的所有子目錄
addpath(genpath(pwd));
addpath(genpath(currPath));
end
end
2、 在GUI中使用Axes控件
% 1.刪除所有畫線及對應圖例
% 查找Axes控件中的畫線
sameLines = findobj('type','line');
% 逐一刪除這些畫線
for i = 1 :length(sameLines)
delete(sameLines(i))
end
% 獲取Axes控件中的圖例(由于畫線全部被刪除,因此為空)
lgStr = get(legend(handles.ResultsAxes), 'String');
% 重新設置圖例(為空)
legend(handles.ResultsAxes,lgStr);
% 2.添加畫線
% 獲取原來的圖例
lgStr = get(handles.hLegend, 'String');
% 設置下一個畫線為添加方式
set(handles.ResultsAxes, 'Nextplot', 'add');
% 指定要畫線的Axes
axes(handles.ResultsAxes);
% 畫線
plot(distance_target, '-r')
% 添加圖例
handles.hLegend = legend(handles.ResultsAxes, lgStr,'目標距離');
% 3.刪除某一畫線
% 所刪除畫線對應的數據為distance_target,獲取它的句柄
sameLines = findobj('type','line','YData', distance_target);
% 刪除畫線
if ~isempty(sameLines)
delete(sameLines);
end
% 獲取原有的圖例
lgStr = get(legend(handles.ResultsAxes), 'String');
% 從原有圖例中刪除對應圖例
legend(handles.ResultsAxes, setdiff(lgStr, {'目標距離'}));
3、 在GUI中使用Excel表格(Activex控件Microsoft Office Spreedsheet)
% 獲取現在使用的spreedsheet的句柄
ActiveSheet = get(handles.activex1,'ActiveSheet');
% 現在使用的spreedsheet的現在使用工作薄
ActiveWorkbook = get(handles.activex1,'ActiveWorkbook');
% 現在使用的表
eSheets = handles.activex1.ActiveWorkbook.Sheets;
% 使用表的第一個子表
eSheet1 = eSheets.get('Item', 1);
% 激活該表
eSheet1.Activate;
% 獲取當前單元格的句柄
ActiveCell = get(handles.activex1, 'ActiveCell');
% 選擇坐標為A1的單元格
Select(Range(ActiveSheet,'A1'));
% 獲取當前單元格的句柄
ActiveCell = get(handles.activex1, 'ActiveCell');
% 設置當前單元格中的內容
set(ActiveCell, 'Value', '仿真結果報告');
4、 為Axes控件設置圖片
% 所有設置的Axes控件
axes(handles.MyLog);
% 讀取圖片數據
Image_tip1=imread('Setting/mylog.jpg');
% 顯示圖片
image(Image_tip1);