Matlab GUI编程教程(适用于初学者)
1.首先我们新建一个GUI文件:File/New/GUI 如下图所示;
选择Blank GUI(Default)
2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;
布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。
3.我们先为数据1文本框添加代码;
点击上图所示红方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
然后在上面这段代码的下面插入如下代码:
%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,
则现实空白内容
input = str2num(get(hObject,'String'));
%检查输入是否为空. 如果为空,则默认显示为0
if (isempty(input))
lambda编程    set(hObject,'String','0')
end
guidata(hObject, handles);
这段代码使得输入被严格限制,我们不能试图输入一个非数字。
4.为edit2_Callback添加同样一段代码
5 现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。
3中同样的方法在m文件中到pushbutton1_Callback代码段 如下;
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
在上面这段代码后添加以下代码;
a = get(handles.edit1,'String');
b = get(handles.edit2,'String');
% a and b are variables of Strings type, and need to be
% converted to variables of Number type before they can
% be added together%
total = str2num(a) + str2num(b);
c = num2str(total);
% need to convert the answer back into String type to
% display it
set(1,'String',c);
guidata(hObject, handles);
下面我们来对上面这段程序分析一下;
a = get(handles.edit1,'String');
b = get(handles.edit2,'String');
上面这行代码把用户输入的数据存入到变量a,变量b中;
% a,b是字符型变量,在计算两者相加之前需把他们转换为数字型
total = str2num(a) + str2num(b);
这段代码实现两数相加
c = num2str(total);
set(3,'String',c);
guidata(hObject, handles);
以上两行代码分别用来更新计算结果文本框和图形对象句柄,一般Callback回调函数都以guidata(hObject, handles);j结束以更新数据
程序运行如下:
如果你仍然有疑问可以留言~
[知识点]
图形用户界面(GUI--包括窗口、图标、菜单、工具条等对象的用户界面。
Posted in Matlab, Matlab GUI, Matlab基础, Matlab教程 | 34 Comments | 编辑
Simulink输出指定状态变量的值
Posted on 2008-03-04 by
今天游览Doug’s Pick of the Week的时候发现Matlab公司有一位应用工程师刚建了一个博客,此博客专门用于介绍Simulink和一些Mathworks工具基于模型的设计.这个博客也许会对正在使用Simulink的人有所帮助吧. 说到Simulink,我做的第一个Simulink模型是一个曲柄滑块的仿真系统,就整个Simulink而言,其实我觉得它的出现使得我们能更加清晰的思考复杂的系统,使得整个系统内个分散繁多的元件看起来更加有条例,可以很容易的看出它们之间的存在什么样的关系. 下面看看Simulink输出指定状态变量的值是如何实现的:
下面是Help文件中的一个例子:
This command creates an options structure called myopts that defines values for the MaxDataPoints and Refine parameters, using default values for other parameters.
myopts = simset('MaxDataPoints', 100, 'Refine', 2);
This command simulates the vdp model for 10 seconds and uses the parameters defined in myopts.
[t,x,y] = sim('vdp', 10, myopts);
Seth那也有一个例子.
Posted in Matlab, Matlab基础, simulink | Tagged Matlab, simulink | Leave a comment | 编辑
解决自己遇到的Matlab问题
Posted on 2007-11-11 by
我在yo2 上写了到目前为止10篇文章。这些文章都只涉及我所在的领域(机械或者优化方面)覆盖面有限。我希望大家可以共同来建立一个资源圈或者说是一个互帮互助的集体,大家在其中就能更好的得到帮助或到自己需要的资料,因为很多人问过我一些问题,而我大多都帮不上他们什么,因为所在领域不同,我不可能帮一个完全不是一个专业的人解决他的建模问题。所以我想把当我遇到问题时如何查资料和解决Matlab问题的过程和方法告诉大家:
1. 首先当你遇到Matlab问题时你应尽量利用软件自带的帮助文件寻求帮助(F1直接进入),有人埋怨自己的Matlab是英文版的,看不懂帮助文档,其实很多大型软件都没有,再者英语地位不用多说,这个问题自己得克服。
2. 你可以去Matlab官方的社区去寻求帮助地址:MATLAB Central
3. 你可以去Matlab工作人员的官方Blog寻求帮助:Art of MATLABDoug's Pick of the WeekImage ProcessingMATLAB Desktop等等
4. 在世界范围寻求帮助。很多Matlab使用者都是在自己的Blog中涉及到自己的使用体会和自己遇到的问题,你可以在他们的Blog中逛逛,说不定会收获以外。我的方法是利用Google Reader订阅Technorati上搜索到的Matlab结果,这样可以使你在Google阅读器中就能看到大量关于Matlab相关内容的博客更新了。
5. 买参考资料来解决你的问题,我遇到的很多Matlab资料介绍的都比较全,但是很少有针对某一学科很详细的参考书籍市场上能到。
最后我想如果你的博客中也时常会涉及到一些 Matlab的内容不如把你的Rss地址或者博客
地址与大家共享一下。
首先我把我的博客订阅地址共享一下: feed.feedsky/matlab
 
Posted in Matlab, 杂谈 | Tagged Matlab, Matlab基础, 关于, 问题 | Leave a comment | 编辑
为GUI设置背景图片
Posted on 2007-11-02 by
方法如下:
1. 创建一个GUI
2. 拖入一个坐标轴到工作区。
3. 为坐标轴加入函数,做法:在坐标轴上右击鼠标 View Callbacks-->CreateFcn.
4. 在函数区写入下面代码:
axes(hObject)
imshow('matlab.png')
 
具体操作如下:
 
[ratings]
Posted in Matlab, Matlab GUI, Matlab图形图像, Matlab基础 | Tagged GUI, Matlab, Matlab基础 | 5 Comments | 编辑
把弧度转化为角度
Posted on 2007-09-12 by
Matlab绘制三角函数是以弧度作为自变量的,这也是所有高级语言采用的共同方法。下面是一个例子:
在命令行中输入:
x=0:pi/100:2*pi;
plot(x,sin(x));
可以得到0~2π区间内sinx的函数图像,可是这个图像横坐标是弧度形式。对于读者来说更希望看到的是角度表示的横坐标。下面的方法可以实现转换:
1是曲柄滑块机构的滑块位移随曲柄转角变化的曲线,可以看到横坐标是以弧度来表示的。现在我们进行转换,进入Figure编辑器——>点击show plot tool按钮(见图2——>点击(见图2——>在图3界面里为弧度加上相应的角度——>效果图(见图5

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。