《最新图形用户界面设计GUI幻灯片》由会员分享,可在线阅读,更多相关《最新图形用户界面设计GUI幻灯片(42页珍藏版)》请在金锄头文库上搜索。
1、图形用户界面设计GUI窗口对象窗口对象线线对对象象轴对象轴对象7/19/20242n matlab7helptecdoccreating_guiexample sample_gui.m sample_gui.fig7/19/20249动画效果动画效果n运用视觉暂留的现象,将静态图形制作成动画运用视觉暂留的现象,将静态图形制作成动画n两种方法:两种方法:1.将多幅静态图存放到图形缓冲区(帧矩阵)内,将多幅静态图存放到图形缓冲区(帧矩阵)内,再逐一的播放出来。再逐一的播放出来。getframe,movie2.利用图形对象的利用图形对象的EraseMode属性属性,更新运动,更新运动部分的图案,保持
2、图形背景图案不变部分的图案,保持图形背景图案不变示例示例7/19/202410 第第6讲讲 程序设计程序设计7/19/202411主要内容主要内容nM文件文件M文本文件文本文件M函数文件函数文件n程序设计程序设计顺序结构顺序结构选择结构选择结构循环结构循环结构nM函数文件函数文件7/19/202412n MATLAB有两种工作方式:有两种工作方式:交互式的命令行工作方式交互式的命令行工作方式M文件的程序工作方式文件的程序工作方式7/19/202413n用用MATLAB语言编写的程序,称为语言编写的程序,称为M文文件,是一个简单的件,是一个简单的ASCII码文本文件码文本文件.nM文件有两类:文
3、件有两类:命令文件命令文件(Script File)函数文件函数文件(Function File)n新建新建M文件文件一一. M文件文件7/19/202414(1).命令文件命令文件简单的简单的m文件文件 命令文件实际上是一串指令的集合,与在命命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。一样的。没有输入输出参数。m1.m求解线性代数方程组的根求解线性代数方程组的根A=2-11-1;2-10-3;30-11;22-25;b=1;2;-3;-6;X=Ab 7/19/202415m2.m筛选出某些数据
4、筛选出某些数据loadpositionform=1:100ifposition(m,2)0p(m)=position(m,2);endend7/19/202416(2).函数函数m文件文件需要输入变量,返回输出需要输入变量,返回输出变量变量n用户可以根据需要编辑自己的用户可以根据需要编辑自己的m函数文件,它函数文件,它们可以像库函数一样方便的调用,从而极大地们可以像库函数一样方便的调用,从而极大地扩展了扩展了matlab的能力。的能力。7/19/202417n 编写函数编写函数tran(),实现直角坐标,实现直角坐标(x,y)与极坐与极坐标标(r,)之间的转换。之间的转换。functionr,
5、theta=tran(x,y)r=sqrt(x*x+y*y);theta=atan(y/x); 调用调用tran函数函数x=3;y=4;r,t=tran(x,y)tran.m7/19/202418二二. 程序设计程序设计n 顺序结构n 选择结构n 循环结构7/19/202419 1)顺序结构顺序结构-数据输入与输出数据输入与输出n数据的输入输出函数1. input:用于向计算机输入一个参数用于向计算机输入一个参数调用格式:调用格式:A=input(提示信息,选项提示信息,选项);注:注:s选项,则允许用户输入一个字符串。选项,则允许用户输入一个字符串。2. disp:命令窗口输出函数。命令窗口
6、输出函数。调用格式:调用格式:disp(输出项输出项)注:输出项为字符串或矩阵。注:输出项为字符串或矩阵。7/19/2024203 pause: 暂停程序的执行。暂停程序的执行。调用格式:调用格式:pause(延迟秒数延迟秒数)注:如果省略延迟时间,则将暂停程序,直到用户注:如果省略延迟时间,则将暂停程序,直到用户按任一键后程序继续执行。按任一键后程序继续执行。7/19/202421n例:键盘输入两个大小不等的数例:键盘输入两个大小不等的数a,b。比较并。比较并显示它们的大小关系。显示它们的大小关系。a=input(a=);b=input(b=);ifabdisp(ab);elsedisp(a
7、b);end2) 选择结构选择结构7/19/202422n程序段:程序段:n=input(pleaseinputanumber:);ifn,=,=,=等等逻辑操作符逻辑操作符&,|,等等逻辑函数:逻辑函数:isequal若是相等则为真若是相等则为真isempty若是空矩阵则为真若是空矩阵则为真isstr若是字符串则为真若是字符串则为真7/19/202425x(1)=1;forn=2:6x(n)=2*x(n-1);endx=12481632 3) 循环结构循环结构7/19/202426例例1:利用:利用for循环求循环求1!+2!+3!+5!的值的值例例2:求向量:求向量x的各元素的平方和的各元
8、素的平方和7/19/202427nfor循环变量循环变量=矩阵表达式矩阵表达式 a= 1 2 3 ; 5 6 7 ; 9 10 11执行过程是依次将矩阵执行过程是依次将矩阵的的各列各列元素赋给循环变量元素赋给循环变量fori=ay=i(1)+i(2)+i(3);end7/19/202428nForexample,thiswhileloopfindsthefirstintegernforwhichn!(nfactorial)isa5-digitnumber. n=1;whileprod(1:n)area, l=fcircle(1)7/19/2024363 函数所传递参数的可调性函数所传递参数的可
9、调性nMATLAB在函数调用上有一个与众不同之处:在函数调用上有一个与众不同之处:函数所传递参数数目的可调性。凭借这一点,一函数所传递参数数目的可调性。凭借这一点,一个函数可完成多种功能。个函数可完成多种功能。nlinspace(d1,d2,n)linspace(d1,d2) E=EIG(X)V,D=EIG(X)n两个特殊变量两个特殊变量nargin所用函数的输入参量个数所用函数的输入参量个数nargout所用函数的输出参量个数所用函数的输出参量个数7/19/202437【例】【例】 nargin用法示例用法示例n函数文件函数文件examp.m:functionf=examp(a,b,c)if
10、nargin=1f=a;elseifnargin=2f=a+b;elseifnargin=3f=(a*b*c)/2;end命令文件命令文件mydemo.m: x=1:3;y=1;2;3; examp(x) examp(x,y) examp(x,y,3)执行执行mydemo.m后的输出是:后的输出是: ans = 1 2 3 ans = 2 4 6 ans = 217/19/202438n在调用函数时,在调用函数时,MATLAB用两个永久变量用两个永久变量nargin和和nargout.分别记录调用该函数时的输入分别记录调用该函数时的输入实参和输出实参的个数。只要在函数文件中包含实参和输出实参的
11、个数。只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进用时的输入输出参数个数,从而决定函数如何进行处理。行处理。7/19/202439n全局变量全局变量:函数可以与其它函数、函数可以与其它函数、MATLAB工作空间工作空间共享变量。所有的函数都可以对它进行存取和共享变量。所有的函数都可以对它进行存取和修改。全局变量必须用修改。全局变量必须用global说明。说明。 7/19/202440n总结总结1、新建和编辑、新建和编辑m文件文件2、m命令文件与命令文件与m函数文件的区别,各自的作函数文件的区别,各自的作用。用。3、matlab编程语言编程语言:顺序、选择、循环顺序、选择、循环4、编写简单的、编写简单的m函数,实现特定的功能。函数,实现特定的功能。5、理解局部变量与全局变量、理解局部变量与全局变量7/19/202441