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);
|
|