图形用户界面设计GUI教学内容

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n = 1; while prod(1:n) < 1e5
n = n + 1; end
break continue 循环嵌套
2020/6/19
29
猜数字:guess.m
游戏开始,会随机产生一个0-100之间的 一个整数。由参与者来猜这个数字是几。 每猜一次,系统都会提示“猜大了”,还是 “猜小了”,一共有10次机会,若10次都没 猜对,就 Game over!
elseif nargin==3 f=(a*b*c)/2;
end
2020/6/19
命令文件mydemo.m: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)
执行mydemo.m后的输出是: ans = 123 ans = 246 ans = 21
end
2020/6/19
24
在条件表达式中,通常都是由 关系操作符 >, < ,<=, >=, = =, ~= 等 逻辑操作符 &,| , ~ 等 逻辑函数:isequal —— 若是相等则为真 isempty ——若是空矩阵则为真 isstr —— 若是字符串则为真
2020/6/19
25
3) 循环结构
1
0 .5
0
-0 .5 20
-1 -5
0 50
像对象1 0 0 150 200
1 0 .5
0 -0 .5
-1 100 200 300
va lue o f the c o s ine co s(x)=0 .7 0 7
线对象
0
5
x= -pi tp pi 文字对象
块对象
0
2020/6/19
3
根屏幕root
M文件有两类: 命令文件(Script File) 函数文件(Function File)
新建M文件
2020/6/19
14
(1). 命令文件 — 简单的m文件
命令文件实际上是一串指令的集合,与在命 令窗口逐行执行文件中的所有指令,其结果是 一样的。没有输入输出参数。
m1.m 求解线性代数方程组的根 A=[2 -1 1 -1;2 -1 0 -3;3 0 -1 1;2 2 -2 5]; b=[1;2;-3;-6]; X=A\b
窗口figure
窗口2
窗口n 父对象
控件control
菜单menu
轴axis
线

文字Biblioteka Baidu

line
surface text
patch
像 子对象
Image
2020/6/19
4
一、图形句柄(handle)
什么是句柄?
句柄是图形对象的标识代码,标识代码含有图 形对象的各种必要的属性信息。
各图形对象的句柄数据格式:
根屏幕 图形窗口
0 整数,表示图形窗口数
其它对象 对应的符点数
句柄图形充分体现了面向对象的程序设计。
2020/6/19
6
二、图形对象属性的获得与设置
句柄属性的设置与修改 get: 获得句柄图形对象的属性和返回某些
对象的句柄值 set: 改变图形对象的属性 专用函数: gcf:当前窗口对象的句柄 Get Current Figure gca:当前轴对象的句柄 Get Current Axes
a = n/2 else
a = (n+1)/2 end
2020/6/19
23
• 例:根据变量 num 的值来决定显示的内容。
switch num case -1 disp(‘child'); case 0 disp(‘the young'); case 1 disp(‘adult'); otherwise disp(‘the old');
2020/6/19
18
二. 程序设计
顺序结构 选择结构 循环结构
2020/6/19
19
1)顺序结构-----数据输入与输出
数据的输入输出函数
1. input:用于向计算机输入一个参数
调用格式: A=input(提示信息,选项); 注:‘s’选项,则允许用户输入一个字符串。
2. disp:命令窗口输出函数。
2020/6/19
7
三、可视化设计工具--- guide
1)由控件组成界面 2)修改控件属性 3)自动生成m文件、
fig文件 4)控件回调函数
callback的编辑 (完成某种功能)
2020/6/19
8
matlab7\help\tecdoc\creating_gui\example sample_gui.m sample_gui.fig
图形用户界面设计(GUI)
GUI : Graphical User Interfaces 图形对象的概念
指图形系统中的基本图元。
2020/6/19
1
1
0.8
0.6
0.4
0.2
0
-0.2
2020/6/19
-0.4
轴对象
窗口对象 线 对 象
2
10
0
-1 0
20
轴对象
10
面对象
10 00
c o s (x)
2020/6/19
31
type fliplr help fliplr
2020/6/19
32
1. m函数文件格式
m函数文件必须由function作为引导词, 必须遵循如下形式:
function 输出形参表 = 函数名(输入形参表) %注释说明部分
函数体
2020/6/19
33
编写函数,求半径为r的圆的面积和周长 fcircle.m文件代码如下:
2020/6/19
30
三、M函数文件
函数文件是另一种形式的M文件,每一个函数文 件都定义一个函数。事实上,MATLAB提供的标准 函数大部分都是由函数文件定义的。 例如 inv, abs和 sqrt,利用所给的输入,返回计算
所要求的结果。 Y=abs(X) 函数是一个黑箱. 只有函数的输入和输出是可见 的,至于函数中的运算过程都是隐含的。
38
在调用函数时,MATLAB用两个永久变量 nargin和nargout. 分别记录调用该函数时的输入 实参和输出实参的个数。只要在函数文件中包含 这两个变量,就可以准确地知道该函数文件被调 用时的输入输出参数个数,从而决定函数如何进 行处理。
2020/6/19
39
全局变量: 函数可以与其它函数、MATLAB工作空间
E = EIG(X)
[V,D] = EIG(X)
两个特殊变量
nargin 所用函数的输入参量个数
nargout 所用函数的输出参量个数
2020/6/19
37
【例】 nargin用法示例
函数文件examp.m: function f=examp(a,b,c)
if nargin==1 f=a;
elseif nargin==2 f=a+b;
共享变量。所有的函数都可以对它进行存取和
修改。全局变量必须用global说明。
2020/6/19
40
总结 1、新建和编辑m文件 2、m命令文件与m函数文件的区别,各自的作 用。 3、matlab编程语言: 顺序、选择、循环 4、编写简单的m函数,实现特定的功能。 5、理解局部变量与全局变量
2020/6/19
10
第6讲 程序设计
主要内容
M文件 M文本文件 M函数文件
程序设计 顺序结构 选择结构 循环结构
M函数文件
2020/6/19
12
MATLAB有两种工作方式:
交互式的命令行工作方式
M文件的程序工作方式
2020/6/19
13
一. M文件
用MATLAB语言编写的程序,称为M文 件,是一个简单的ASCII码文本文件.
2020/6/19
9
动画效果
运用视觉暂留的现象,将静态图形制作成动画 两种方法: 1. 将多幅静态图存放到图形缓冲区(帧矩阵)内,
再逐一的播放出来。 getframe, movie 2. 利用图形对象的‘EraseMode’属性,更新运
动部分的图案,保持图形背景图案不变
• 示例
2020/6/19
[V,D]=eig(A) 3. 函数中的变量均为局部变量,不保存在工作空间
中。其变量只在函数运行期间有效。函数内变量 与MATLAB工作空间之间唯一的联系是函数的参 数。
2020/6/19
35
2.函数调用
函数文件编制好后,就可调用函数进行计算 了。如上面定义fcircle函数后,调用它求圆的面 积和周长。
2020/6/19
17
编写函数tran(),实现直角坐标(x,y)与极坐 标(r,θ)之间的转换。
tran.m
function [r,theta] = tran(x,y) r =sqrt(x*x+y*y); theta =atan(y/x);
调用 tran函数
>> x=3;y=4; >> [r,t]=tran(x,y)
x(1)=1; for n = 2:6
x(n) = 2 * x(n - 1); end
x=
1 2 4 8 16 32
2020/6/19
26
例1:利用for循环求1!+2!+3!+ +5!的值 例2:求向量x的各元素的平方和
2020/6/19
27
for 循环变量 = 矩阵表达式
a=[ 1 2 3 ;
调用格式: disp(输出项) 注:输出项为字符串或矩阵。
2020/6/19
20
3. pause: 暂停程序的执行。
调用格式: pause(延迟秒数)
注:如果省略延迟时间,则将暂停程序,直到用户 按任一键后程序继续执行。
2020/6/19
21
2) 选择结构
例:键盘输入两个大小不等的数a, b。比较并 显示它们的大小关系。
41
function [s, p]= fcircle (r)
% CIRCLE calculate the area and perimeter of a circle of % radii r
s=pi*r*r; p=2*pi*r;
2020/6/19
34
规则和属性
1. 函数名和文件名必须相同。
2. 函数可以有零个或更多个输入参量,也可以有零 个或更多个输出参量。当有一个以上输出变量时, 输出变量包含在括号内。例如,
2020/6/19
15
m2.m 筛选出某些数据
load position for m=1:100
if position(m,2)>0 p(m)=position(m,2);
end end
2020/6/19
16
(2). 函数m文件— 需要输入变量,返回输出 变量
用户可以根据需要编辑自己的m函数文件,它 们可以像库函数一样方便的调用,从而极大地 扩展了matlab 的能力。
5 6 7; 9 10 11]
for i=a y=i(1)+i(2)+i(3);
end
执行过程是依次将矩阵 的各列元素赋给循环变量
2020/6/19
28
For example, this while loop finds the first integer n for which n! (n factorial) is a 5-digit number.
a=input(‘a=‘); b=input(‘b=‘); if a>b
disp(‘a > b’); else
disp(‘a<b’); end
2020/6/19
22
程序段:
n=input(‘please input a number:’); if n < 0
disp ('Input must be positive'); elseif rem(n,2) == 0
函数调用的一般格式是:
[输出实参表]=函数名(输入实参表)
>>[area, l]=fcircle(1)
2020/6/19
36
3 .函数所传递参数的可调性
MATLAB在函数调用上有一个与众不同之处: 函数所传递参数数目的可调性。凭借这一点,一
个函数可完成多种功能。
linspace(d1,d2,n) linspace(d1,d2)
相关文档
最新文档