您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MATLAB-GUI设计入门与实战PPT
第一章MATLABGUI应用实战(余胜威、吴婷、罗建桥)第1章MATLAB入门与提高第一章MATLABGUI应用实战MATLAB2014a用户界面第一章MATLABGUI应用实战1.1矩阵运算%DesignedbyYuShengweiFromSWJTUUniversity%2014年12月29日clc,clear,closeall%清理命令区、清理工作区、关闭显示图形warningoff%消除警告featurejitoff%加速代码运行%符号矩阵ysw1=sym('ysw1')%符号r=sym(1/3)%符号变量f=sym(1/3,'f')%符号变量d=sym(1/3,'d')%符号变量e=sym(1/3,'e')%符号变量ysw1=ysw1r=1/3f=6004799503160661/18014398509481984d=0.33333333333333331482961625624739e=1/3-eps/12第一章MATLABGUI应用实战1.1.3元胞数组%DesignedbyYuShengweiFromSWJTUUniversity%2014年12月29日clc,clear,closeall%清理命令区、清理工作区、关闭显示图形warningoff%消除警告featurejitoff%加速代码运行%元胞数组ysw{1}=[1,2];ysw{2}=[3,2];ysw{3}=[1,4];celldisp(ysw)%显示元胞数组元胞数组应用较广泛,特别是样本数较多,且样本与样本之间是独立存在的,此时采用元胞数组来保存数据显得很有必要。具体的元胞数组表示用“{}”来表示。第一章MATLABGUI应用实战1.1.4结构体第一章MATLABGUI应用实战1.1.5数据类型转换图像数据常常复杂多变,具体有0-1二值化类型、uint8、double、single、uint16等第一章MATLABGUI应用实战1.2Figure图形属性设置MATLAB提供了丰富的可视化图形显示界面,用户可以很清楚的知道曲线的走势,MATLAB也因其友好的人机交互模式受到越来越多的人的喜好。第一章MATLABGUI应用实战1.2.5特殊字符标记MATLAB提供了特殊对图形标记进行修饰,对于上下标的标定,工程上应用较广泛,例如、等的标记,MATLAB提供了上下控制指令。012345678910-0.8-0.6-0.4-0.200.20.40.60.81xy第一章MATLABGUI应用实战1.3函数及其调用调用:MATLAB提供了友好的编程环境,用户可以采用MATLAB脚本文件(.m文件)进行函数抒写,并且能够很简单的实现函数的嵌套调用。对于求解一个图像滤波器的程序,编写函数如下:functionim_e=Homom_filter(im,d,rL,rH)全局变量:全局变量在大型的编程中,较常用到,特别是在GUI设计中,每个功能模块下运行度理的程序,则需要调用前面对应的输出和输入的变量,这时候需要对应的全局变量,全局变量在MATLAB中用“global”表示,指定全局变量后,该变量能够分开在私自函数、子函数、主函数中使用,全局变量在整个程序设计阶段基本保持一致,且可以减少函数变量的输入,避免用户过多的去重新定义。第一章MATLABGUI应用实战1.4.1一维数据插值MATLAB提供的函数interp1(),进行一维插值,函数interp1()可以有3种调用形式。12345678910012345678xy原始数据nearest插值12345678910012345678xy原始数据linear插值第一章MATLABGUI应用实战1.4.2二维数据插值第一章MATLABGUI应用实战1.5数据拟合第一章MATLABGUI应用实战1.6微分方程求解数值积分是数值计算中常用的一个重要知识点,数值积分是一种满足用户精度的情况下,对实际问题的近似处理,数值积分运算方法比较多。%DesignedbyYuShengweiFromSWJTUUniversity%2014年12月29日clc,clear,closeall%清理命令区、清理工作区、关闭显示图形warningoff%消除警告featurejitoff%加速代码运行tic%运算计时options=odeset('RelTol',1e-4,'AbsTol',1e-5);%Ode求解器参数设置y0=1;%初值[T,Y]=ode45(@fun,[420],y0,options);boxon%外框盒子边线gridon%网格化axisequal%轴相等plot(T,Y,'linewidth',2)%画图toc%计时结束'第一章MATLABGUI应用实战1.7线性方程组求解在MATLAB中编程实现Gauss-Seidel迭代法一般化程序如下:functionx=gauss_seidel_x(A,B,x0,Err)%A为方程组系数%B为方程组值%x0为初值%Err求解精度D=diag(diag(A));%提取A中L=-tril(A)+D;%求下三角矩阵U=-triu(A)+D;%求上三角矩阵DL=D-L;A_DL=inv(DL);%求逆x=A_DL*U*x0+A_DL*B;whilenorm(x-x0)Err%d当两次计算结果2范数小于Err退出循环体x=x0;x0=A_DL*U*x+A_DL*B;第一章MATLABGUI应用实战1.8非线性方程组求解clc,clear,closeall%清理命令区、清理工作区、关闭显示图形warningoff%消除警告featurejitoff%加速代码运行formatshorttic%运算计时[x,fval,exitflag,output]=fminbnd('(4*x^3+2*cos(x)+3*x*log(x))/(2*exp(x))',0,1)toc%计时结束'x=0.3719fval=0.3328exitflag=1output=iterations:8funcCount:9algorithm:'goldensectionsearch,parabolicinte...'message:'优化已终止:当前的x满足使用1.000000e-04的OPT...'时间已过0.198718秒。第一章MATLABGUI应用实战1.9概率统计生成服从标准正态分布(均值为0,方差为1)的随机数,MATLAB编程如下:x=randn(10000,1);%100000行1列hist(x,50);-4-3-2-10123450100200300400500600700第一章MATLABGUI应用实战1.9.4蒙特卡洛MonteCarlo算法%DesignedbyYuShengweiFromSWJTUUniversity%2014年12月29日clc,clear,closeall%清理命令区、清理工作区、关闭显示图形warningoff%消除警告featurejitoff%加速代码运行formatshorttic%运算计时P=rand(10000,2);x=2*P(:,1)-1;y=2*P(:,2);points=find(y=2-x.^2&y.^3=x.^2);M=length(points);S=4*M/10000figure('color',[1,1,1])plot(x(points),y(points),'bs')toc%计时结束'运行程序输出结果如下:S=2.1168时间已过0.085066秒。第一章MATLABGUI应用实战1.10图像处理图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。空间坐标(x,y)的数字化称为图像采样,而幅值数字化称为灰度级量化。%DesignedbyYuShengweiFromSWJTUUniversity%2014年12月29日clc,clear,closeall%清理命令区、清理工作区、关闭显示图形warningoff%消除警告featurejitoff%加速代码运行ps=imread('bag.png');%读图figure(1)%先建图像窗口imshow(ps)%画图background=imopen(ps,strel('disk',4));%形态学开运算figure(2)%先建图像窗口imshow(background);figure(3)%先建图像窗口surf(double(background(1:4:end,1:4:end))),zlim([0256]);%画图set(gca,'Ydir','reverse');%设置Y轴反向第一章MATLABGUI应用实战1.10.3图像颜色空间图像彩色空间主要有RGB格式(红、绿、蓝)、HSI格式(色度、饱和度、亮度)、YUV格式等
本文标题:MATLAB-GUI设计入门与实战PPT
链接地址:https://www.777doc.com/doc-5186742 .html