posts - 195, comments - 34, trackbacks - 0, articles - 1

MATLAB GUI编程中几个有用的程序段

Posted on 2007-06-21 21:30 小强摩羯座 阅读(4645) 评论(2)  编辑  收藏 所属分类: matalb相关

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



Feedback

# re: MATLAB GUI编程中几个有用的程序段[未登录]  回复  更多评论   

2007-09-06 09:45 by zz
Nice!

# re: MATLAB GUI编程中几个有用的程序段  回复  更多评论   

2009-08-29 15:23 by ncepuyuyu
Fine

只有注册用户登录后才能发表评论。


网站导航: