第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日

Slides:



Advertisements
Similar presentations
Matlab 教學 Speaker :陳珮妮 Date : 2013/03/14 1. Outline  MATLAB 簡介  算術邏輯運算  Matlab 陣列  Matlab 矩陣 2.
Advertisements

大學入學考試中心 九十六學度學科能力測驗試題 國文科 -哈利波特番外篇-
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
C语言程序设计 主讲教师 :张群燕 电话:
黃聰明 臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 臺灣師範大學數學系.
软件工程 周志钊
MATLAB程序设计教程(第二版) 刘卫国 主编 中国水利水电出版社.
自考英语二.
MATLAB小结、 经典迭代法、CG.
Introduction to Matlab
1012 MATLAB 教學 彭奕翔 2013/02/27.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
MATLAB程序设计基础 MATLAB的图形处理.
——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
2.3 变量间的相关关系 变量之间的相关关系 两个变量的线性相关 第二课时.
2010年桂林理工大学数学建模竞赛暑期培训班 MATLAB编程入门培训课程
算法和程序设计 第4课 分支结构的算法设计 •.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
MATLAB 程式設計進階篇 一般數學函數的處理與分析
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
Matlab教學 Speaker:林昱志 Date:2012/10/25.
Matlab M檔案 方煒 台大生機系.
大学数学实验 欢迎进入 MATLAB 世界 作者 薛长虹 数学系 地址:
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
Z Mathematical Model ‡ ' MATLAB简介.
MATLAB、CTEX简介 及其 在教学中的应用
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
第7章 MATLAB图形用户界面设计 7.1 菜单设计 7.2 对话框设计 7.3 用户界面设计工具.
第4章 MATLAB绘图 4.1 MATLAB二维曲线绘图 基本绘图指令 1.plot(Y) 功能:画一条或多条折线图.
第八讲 MATLAB图形用 户界面设计.
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
计算机科学与技术专业研究型课程 几 何 图 元 宋传鸣 辽宁师范大学计算机与信息技术学院.
MATLAB数学实验 第四章 函数和方程.
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
第三章 MATLAB图形系统 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制
Introduction to MATLAB
数学建模与数学实验 MATLAB作图.
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
第2章 MATLAB程序设计 编者.
第九单元 第1课 实验 Matlab动画 1.洛仑兹非线性奇异方程所描述的无序运动 2.作y=sin(x)的程序动画(1)
MATLAB 入门教程.
第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构.
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程式設計入門篇 三維立體繪圖 (part1)
MATLAB 程式設計入門篇 初探MATLAB
第3章 JavaScript基本语句.
第二节 MATLAB 图形处理 内容: §1 二维图形显示 §2 图形可视编辑工具 §3 三维图形显示 §4 视角变换与三视图
两个变量的线性相关 琼海市嘉积中学 梅小青.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第1章 MATLAB操作基础 1. 1 MATLAB概述 1. 2 MATLAB的运行环境与安装 1. 3 MATLAB集成环境 1
1.5 Matlab绘图 plot(y) plot(x,y)
第7章 MATLAB工程计算.
MATLAB 实用教程.
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写
百雞問題 製作者:張美玲 資料來源:數學誕生的故事—凡異出版社.
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
Presentation transcript:

第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日 东华大学 MATLAB数学实验

2.1 程序设计 控制流 M脚本文件 函数文件 函数句柄、内嵌函数和匿名函数 其它 2019年4月23日 东华大学 MATLAB数学实验

控制流-选择结构 一、if语句 单分支if语句: if 条件 语句组 end 双分支if语句: 语句组1 else 语句组2 例:计算分段函数值 x=input('请输入x的值:'); if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y 2019年4月23日 东华大学 MATLAB数学实验

二、switch语句 switch 表达式 case 表达式1 price=input('请输入商品价格:'); 语句组1 例:已知打折标准(x<200元,原价; 200元 =<x<500元, 九五折; x>=500元,八五折),求所售商品的实际销售价格。 price=input('请输入商品价格:'); switch fix(price/100) case {0,1} rate=1; case {2,3,4} rate=95/100; otherwise rate=85/100; end price=price*rate switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 …… case 表达式m 语句组m otherwise 语句组m+1 end 2019年4月23日 东华大学 MATLAB数学实验

三、try语句 try 语句组1 catch 语句组2 end try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。 2019年4月23日 东华大学 MATLAB数学实验

例:矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘(数组运算)。 A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; %若A是m*n,则要求B是n*m catch C=A.*B; %若A是m*n,则要B也是m*n end C lasterr %显示出错原因 2019年4月23日 东华大学 MATLAB数学实验

控制流-循环结构 一、for语句 for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 初值 增量 终值 例:已知y的表达式,当n=100时,求y的值。 y=0;n=100; for i=1:n y=y+1/i/i; end y 默认增量为1 2019年4月23日 东华大学 MATLAB数学实验

for语句更一般的格式: for 循环变量=矩阵表达式 循环体语句 end 矩阵按列分块, 逐行相加 例:已知5个学生4门功课的成绩,求每名学生的总成绩。 s=0; a=[65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87]; for k=a s=s+k; end 矩阵按列分块, 逐行相加 2019年4月23日 东华大学 MATLAB数学实验

二、while语句 while (条件) 循环体语句 end break语句:当在循环体内执行到该语句时,程序将跳出循环 例: clear; t=0; n=1; while (n<=100) t=t+1/n/n; n=n+1; end t 问题: 如果去掉"n=n+1", 会出现什么情况? 2019年4月23日 东华大学 MATLAB数学实验

M脚本文件 M文件的建立与编辑 (1)菜单操作:File菜单 → New菜单项 → M-file命令。 (2)命令操作:在命令窗口输入命令edit。 (3)命令按钮操作:单击工具栏上的“新建”命令按钮。 注意: 文件名一律以字母开头,以字母、数字或下划线组成,不要含有空格、减号等, 不要和变量名冲突; M文件名一般都用小写字母; 保存在当前目录(Current Directory) 2019年4月23日 东华大学 MATLAB数学实验

分类:脚本文件(Script File)(或称命令文件)和函数文件(Function File) 主要区别: M文件的分类 分类:脚本文件(Script File)(或称命令文件)和函数文件(Function File) 主要区别: 1、M脚本文件没有参数传递功能; 函数文件有参数传递功能。 2、M脚本文件中的变量是全局的,在命令窗口也可用; 但命令窗口的变量在M脚本文件中不可用; 函数文件中的变量是局部的。 2019年4月23日 东华大学 MATLAB数学实验

例: 建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。 建立一个命令文件将变量a,b的值互换,然后运行该命令文件。 首先建立命令文件并以文件名exch.m存盘: a=1:10; b=[11,12,13,14;15,16,17,18]; c=a;a=b;b=c; a, b 然后在MATLAB的命令窗口中输入exch。 建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。 先建立函数文件fexch.m: function [a,b]=exch(a,b) c=a;a=b;b=c; 在命令窗口调用该文件: x=1:10; y=[11,12,13,14;15,16,17,18]; [x,y]=fexch(x,y) 调用文件名 2019年4月23日 东华大学 MATLAB数学实验

函数文件 函数文件的基本结构 function 输出形参表=函数名(输入形参表) 函数体语句 函数文件名:函数文件名与函数名也可以不相同。当两者不同时,MATLAB将忽略函数名而确认函数文件名,因此调用时使用函数文件名。 若一个文件中定义了多个函数,则只有第一个函数作为主函数可以被外部调用;其它函数作为子函数只能被同一个文件中的主函数或其它子函数调用,而不能被外部调用。 2019年4月23日 东华大学 MATLAB数学实验

*函数句柄、内联函数和匿名函数 使用函数句柄(handle)方式调用M函数。命令feval用于执行函数的参数方式。例如 >>fhandle=@fexch; [a,b]=feval(fhandle,x,y) >>[a,b]=feval('fexch',x,y) 内联(inline)函数方式: fun=inline(expr, arg1, arg2, ...) 其中expr为函数表达式字符串, arg1, arg2, ...为自变量。例如 >> fname=inline('sum(1./(1:n).^2)','n'); >> feval(fname,100) 表达式 参数 2019年4月23日 东华大学 MATLAB数学实验

其它-数据的输入输出 input函数: 提示用户输入数据 求ax2 +bx+c=0的根。 A=input(提示信息,选项); 程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]); disp函数:屏幕输出 disp(输出项) 注意:输出项既可以为字符串, 也可以为矩阵; 用disp函数显示矩阵时不显 示矩阵的名字,其格式更紧密, 不留任何无意义的空行。 2019年4月23日 东华大学 MATLAB数学实验

其它-全局变量和局部变量 函数文件的内部变量默认是局部的。 全局变量用命令global定义。 例:建立函数文件wadd.m,将输入参数加权相加。 function f=wadd(x,y) global ALPHA BETA f=ALPHA*x+BETA*y; 命令窗口:global ALPHA BETA ALPHA=1; BETA=2; s=wadd(6,9) 2019年4月23日 东华大学 MATLAB数学实验

其它-nargin与nargout 在调用函数时,MATLAB用两个永久变量: nargin:记录调用函数时输入实参个数; 例:函数文件exam_arg.m: function [f1,f2]=exam_arg(a,b,c) if nargin==1 f1=a; elseif nargin==2 f1=(a*b)/2; elseif nargin==3 f1=(a*b*c)/3; elseif nargin > 3 error('too many arguments.'); end if nargout==0 error('No output argument.'); elseif nargout==2 f2=2; 2019年4月23日 东华大学 MATLAB数学实验

*其它-提高速度 多用数组和内部函数,少用循环,以提高速度。 例2.4: 2019年4月23日 东华大学 MATLAB数学实验

2.2 作图 曲线图 曲面图 图形说明和定制 菜单和工具栏的使用 2019年4月23日 东华大学 MATLAB数学实验

1、曲线图 绘制曲线的最基本函数: plot(x,y) :x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。 plot(x1,y1,选项1,x2,y2, 选项2,…,xn,yn,选项n) :多 组折线 plot3(x1,y1,z1,选项1,…,xn,yn,zn,选项n) :空间曲线 fplot(‘fun’,[a,b]):绘制fun在区间[a,b]上的图形,fun 可以是函数或表达式 可选,表示折线的属性,如颜色、粗细等 2019年4月23日 东华大学 MATLAB数学实验

例: 1) 绘制三维参数曲线: t=0:pi/50:2*pi; x=8*cos(t);y=4*sqrt(2)*sin(t); 1) 绘制三维参数曲线: t=0:pi/50:2*pi; x=8*cos(t);y=4*sqrt(2)*sin(t); z=-4*sqrt(2)*sin(t); plot3(x,y,z,'p'); 五角形 2019年4月23日 东华大学 MATLAB数学实验

例: 2) 在0≤X≤2区间内,绘制曲线y=2e-0.5xsin(2πx) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y,'r*') %分别以x,y对应的元素为横、纵坐标绘制曲线。 图形导出方法:1、File->Save->图形文件 2、Edit->Copy figure->粘贴到指定文件 2019年4月23日 东华大学 MATLAB数学实验

例: 在[-1,2]上画的 图形 解 先建M文件myfun1.m: function Y=myfun1(x) 在[-1,2]上画的 图形 解 先建M文件myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin(3*x.^2) 命令窗口: fplot(‘myfun1’,[-1,2]) 2019年4月23日 东华大学 MATLAB数学实验

平面网格坐标的生成 2、 曲面图形 绘制三维曲面的函数 x,y,z是同阶矩阵, 表示曲面的三维 坐标数据 x=a:dx:b; y=c:dy:d; [X,Y]=meshgrid(x,y); 绘制三维曲面的函数 x,y,z是同阶矩阵, 表示曲面的三维 坐标数据 mesh(x,y,z):网格图; surf(x,y,z): 曲面图(填充网格); contour(x,y,z):等高线图(平面图); contour3(x,y,z):三维等高线图(空间图)。 2019年4月23日 东华大学 MATLAB数学实验

M文件eg2_6.m 例2.6 : xa=-2:0.2:2;ya=xa; [x,y]=meshgrid(xa,ya); z=x.*exp(-x.^2-y.^2); mesh(x,y,z);pause(2) surf(x,y,z);pause(2) contour(x,y,z);pause contour3(x,y,z);pause contour(x,y,z,[0.1 0.1]); contour3(x,y,z,[0.2 0.2]); 等待2秒 网格图 等待,直到用户按下任意键 填充网格 平面等高线 绘制z=0.2的等高线 立体等高线 2019年4月23日 东华大学 MATLAB数学实验

3、图形说明和图形定制 图形标注 title(图形名称) xlabel(x轴说明) ylabel(y轴说明) 坐标控制 hold on/off 保留/释放现有图形; figure/close 新开/关闭图形窗口; grid on/off 画/不画网格线,不带参数的grid命令在两种状态之间进行切换。 box on/off 加/不加边框线,不带参数的box命令在两种状态之间进行切换。 axis on/off 显示/取消坐标轴 axis([xmin xmax ymin ymax zmin zmax]) 限定坐标轴范围 2019年4月23日 东华大学 MATLAB数学实验

图形窗口的分割subplot(m,n,p) 例:在一个窗口中同时绘制正弦、余弦等曲线。 x=linspace(0,2*pi,60); y=sin(x);z=cos(x); subplot(2,2,1); %选择2×2区中的1号区 plot(x,y); title('sin(x)'); axis ([0,2*pi,-1,1]); subplot(2,1,2); %选择2×1区中的2号区 plot(x,z, '*'); title('cos(x)'); axis ([0,2*pi,-1,1]); x=linspace(-2,2,60); y=x.^3;z=x.^2; subplot(4,4,3); %选择4×4区中的3号区 plot(x,y); title('x.^3'); axis ([-2,2,-4,4]); subplot(4,4,4); %选择4×4区中的4号区 plot(x,z); title('x.^2'); axis ([-2,2,0,4]); 2019年4月23日 东华大学 MATLAB数学实验

2.3 在线帮助和文件管理 在线帮助 1、 help命令 是最基本的查询方法,可查询所有目录、指定目录、命令、函数。 2.3 在线帮助和文件管理 在线帮助 1、 help命令 是最基本的查询方法,可查询所有目录、指定目录、命令、函数。 2、lookfor 关键字: 搜索相关的命令和函数; 3、type M文件名:显示M文件代码; 4、which M文件名:显示指定文件的路径; 5、demo:演示matlab功能; 2019年4月23日 东华大学 MATLAB数学实验

文件和目录管理 MATLAB只执行当前目录和搜索路径中的命令和函数; 当前目录(Current directory)窗口列出了当前目录的程序和数据文件等,可以修改当前路径; 菜单Files\Set path可将某一目录增加到MATLAB默认搜索路径(Path)队列; 2019年4月23日 东华大学 MATLAB数学实验

2.4 练习 1、在[0,2*pi]上画 的图形。 2、在区间[0,10*pi]画参数曲线x=sin(t),y=cos(t), z=t 2.4 练习 1、在[0,2*pi]上画 的图形。 2、在区间[0,10*pi]画参数曲线x=sin(t),y=cos(t), z=t , 3、画出曲面Z=(X+Y).^2的网格图。 2019年4月23日 东华大学 MATLAB数学实验

1、 >> t=0:pi/50:2*pi; >> x=cos(t).^3;y=sin(t).^3; >> plot(x,y); 2、t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) 3、x=-3:0.1:3; y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; mesh(X,Y,Z) 2019年4月23日 东华大学 MATLAB数学实验