24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 841  |  回复: 8
【奖励】 本帖被评价6次,作者ning903增加金币 4.5
当前主题已经存档。

ning903

木虫 (职业作家)


[资源] 【交流】MATLAB GUI编程中几个有用的程序段(搜索无重复)

MATLAB GUI编程中几个有用的程序段
,对该内容总结者表示感谢转自http://bbs.bccn.net/thread-54231-1-1.html


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

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

[ Last edited by sunxiao on 2009-3-8 at 12:51 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ning903

木虫 (职业作家)


为什么没有看的呢
2楼2008-11-28 10:22:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)


★★★ 三星级,支持鼓励

呵呵,现在GUI非常简单,只要会用C或者其他的如Java进行界面编程的人都应该会用,直接在命令窗口输入:

guide;

就会得到新的GUI界面,然后按照操作一个一个来,想要什么,就拉什么进来,鼠标操作非常方便了现在~~

很想知道Matlab 2008编出来的GUI会是什么样呢?
3楼2008-12-03 16:49:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)


★★★★★ 五星级,优秀推荐

很实用,谢谢
4楼2009-03-03 12:14:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

melody6689

银虫 (小有名气)


★★★ 三星级,支持鼓励

不错,学习下
5楼2009-03-04 10:23:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ning903 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见