(完整版)第二讲Matlab编程与作图
(完整版)第二讲Matlab编程与作图
(完整版)第⼆讲Matlab编程与作图第⼆讲Matlab编程与作图第⼀部分Matlab程序设计初步Matlab除了指令⾏操作的直接交互外,作为⼀种⾼级应⽤软件还提供了⾃⼰的编程语⾔。
通过编写Matlab程序,可以更加⽅便地调⽤Matlab提供的各种功能强⼤的函数库,使得程序能完成复杂的运算处理⼤量的数值数据。
1、M⽂件简介Matlab提供了丰富的编程语⾔,使得⽤户可以将⼀连串的命令写⼊⽂件,然后使⽤简单的函数来执⾏这些命令。
⽂件被保存为⽂本⽂件,后缀为.m,⽐如说dblquad.m,因此Matlab的程序通常被称为M ⽂件。
M⽂件是⼀个⽂本⽂件,可以使⽤各种⽂本编辑器对它进⾏编辑和修改,⽐如Windows操作系统⾃带的记事本,也可以⽤Matlab 内建的M⽂件编辑器。
M⽂件分为两类,⼀类称为脚本(Scripts),类似于批处理⽂件,相当于将在Matlab命令窗⼝中执⾏的⼀系列指令放在⼀个⽂件中,当在命令窗⼝调⽤该⽂件名时,则按顺序执⾏其中的命令集。
例2.1:编写求10!的程序。
n=10;s=1;for k=1:ns=s*k;enddisp(s) %disp:MATLAB中的命令,表⽰只显⽰结果,不显⽰变量名。
另⼀类M⽂件称为函数(Function),它可以接受输⼊变量,并将运算结果送⾄输出变量,类似于数学中的函数y=f(x)。
函数M⽂件的基本结构:function f=fact(n) 函数定义⾏%Compute a factorial value. 计算阶乘的值%FACT(N) returns the factorial of N, 帮助⽂档%usually denoted by N!%Put simply,FACT(N) is PROD(1:N), 注释f=prod(1:n); 函数体例2.2:编写分段函数21() 1 -1<1321x xf x xx x>=≤+≤-%myfun1.mfunction y=myfun1(x)y=(x.^2).*(x>1)+(x>-1& x<=1)+(3+2*x).*(x<=-1);注意:1.函数名与变量名的命名法则相同,要求以字母开头,后接字母或下划线;2.函数名与保存的⽂件名最好⼀致。
matlab教程ppt(完整版)
展示部分与整体的关系,通过扇形面积或角度表 示占比。
三维图形
01
02
03
04
三维散点图
在三维空间中展示两个变量之 间的关系,通过点的位置展示
数据。
三维曲面图
通过曲面表示两个或多个变量 之间的关系,可以展示数据的
分布和趋势。
三维等高线图
表示三维空间中数据的分布和 变化,通过等高线的形状和密
集程度展示数据。
处理运行过程中出现的错误和 异常情况。
通过优化算法和代码结构,提 高程序的运行效率。
对代码进行重新组织,使其更 易于阅读和维护。
03
MATLAB可视化
绘图基础
散点图
描述两个变量之间的关系,通过点的分布展示数 据。
条形图
比较不同类别的数据大小,通过条形的长度或高 度进行比较。
折线图
展示时间序列数据或多个变量之间的关系,通过 线条的走势呈现数据变化。
控制系统仿真
使用MATLAB进行控制系统仿真 ,模拟系统动态性能。
控制系统优化
对控制系统进行优化设计,如权 重优化、多目标优化等。
THANK YOU
感谢聆听
对图像进行几何变换,如缩放、旋转、平移 等操作。
动画制作
帧动画
通过一系列静态图像的连续播放,形 成动态效果。
路径动画
让对象沿指定路径移动,形成动态效 果。
变形动画
让对象从一个形状逐渐变形为另一个 形状,形成动态效果。
交互式动画
允许用户通过交互操作控制动画的播 放、暂停、回放等操作。
04
MATLAB在科学计算中的应用
对函数进行数值积分和微分, 用于解决定积分和微分方程问 题。
数值优化
matlab教程ppt(完整版)
`int8()`,
`char()`, `logical()`等。
流程控制结构
顺序结构
按照代码的先后顺序执行 。
选择结构
通过条件语句实现分支选 择,包括`if`、`else`、 `elseif`等。
循环结构
通过循环语句实现重复执 行代码块,包括`for`、 `while`等。
函数编写
函数定义
使用`function`关键字定义函数, 指定输入和输出参数。
介绍MATLAB中的机器学习工具箱,包括工具箱中的函数、算 法和使用方法等。
通过实际案例演示如何使用MATLAB进行机器学习,包括数据 预处理、特征选择、模型训练和评估等。
THANKS
[ 感谢观看 ]
信号的傅里叶变换
介绍傅里叶变换的基本原理 ,以及如何使用MATLAB进 行信号的傅里叶变换和逆变 换。
滤波器设计
介绍滤波器的基本原理和设 计方法,以及如何使用 MATLAB进行滤波器的设计 和实现。
信号处理实例
通过实际案例演示如何使用 MATLAB进行信号处理,包 括信号的频谱分析、滤波、 降噪等。
数值计算基础
数值类型
介绍MATLAB中的数值类型,包括双精度、单精 度、复数等。
变量声明
解释如何声明和初始化变量,以及如何使用 MATLAB的数据类型。
运算符
介绍基本的算术运算符、关系运算符和逻辑运算 符及其用法。
方程求解
代数方程求解
介绍如何使用MATLAB求解一元和多元代数方程。
微分方程求解
介绍如何使用MATLAB求解常微分方程和偏微分方程。
MATLAB应用领域
MATLAB是一种用于算法开发、数据 可视化、数据分析和数值计算的高级 编程语言和交互式环境。
matlab教程ppt(完整版)
数据处理
应用MATLAB的信号处理和统计 分析函数库,进行数据预处理、
特征提取和模型训练。
机器学习与深度学习
机器学习
介绍MATLAB中的各种机器学习算法,如线性回归、决策 树、支持向量机等,以及如何应用它们进行分类、回归和 聚类。
深度学习
介绍深度学习框架和网络结构,如卷积神经网络(CNN) 、循环神经网络(RNN)等,以及如何使用MATLBiblioteka B进行 训练和部署。感谢观看
THANKS
符号微积分
进行符号微分和积分运算,如极限、导数和 积分。
符号方程求解
使用solve函数求解符号方程。
符号矩阵运算
进行符号矩阵的乘法、转置等运算。
05
MATLAB应用实例
数据分析与可视化
数据分析
使用MATLAB进行数据导入、清 洗、处理和分析,包括描述性统
计、可视化、假设检验等。
可视化
利用MATLAB的图形和可视化工 具,如散点图、柱状图、3D图等
数值求和与求积
演示如何对数值进行求和与求积 操作。
数值计算函数
介绍常用数值计算函数,如sin、 cos、tan等。
方程求解
演示如何求解线性方程和非线性方 程。
03
MATLAB编程基础
控制流
01
02
03
04
顺序结构
按照代码的先后顺序执行,是 最基本的程序结构。
选择结构
通过if语句实现,根据条件判 断执行不同的代码块。
数据分析
数值计算
MATLAB提供了强大的数据分析工具,支 持多种统计分析方法,可以帮助用户进行 数据挖掘和预测分析。
MATLAB可以进行高效的数值计算,支持 多种数值计算方法,包括线性代数、微积 分、微分方程等。
matlab教程ppt(完整版)
可以使用`'`运算符对矩阵进行 转置。
矩阵高级运算
01
逆矩阵
可以使用`inv`函数求矩阵的逆矩阵 。
行列式
可以使用`det`函数求矩阵的行列式 。
03
02
特征值和特征向量
可以使用`eig`函数求矩阵的特征值 和特征向量。
秩
可以使用`rank`函数求矩阵的秩。
04
04
matlab绘图功能
绘图基本命令
控制设计
MATLAB提供了控制系统设计和分析 工具箱,可以方便地进行控制系统的 建模、分析和优化。
03
信号处理
MATLAB提供了丰富的信号处理工具 箱,可以进行信号的时域和频域分析 、滤波器设计等操作。
05
04
图像处理
MATLAB提供了图像处理工具箱,可 以进行图像的增强、分割、特征提取 等操作。
02
matlab程序调试技巧分享
01
调试模式
MATLAB提供了调试模式,可以 逐行执行代码,查看变量值,设 置断点等。
日志输出
02
03
错误处理
通过使用fprintf函数,可以在程 序运行过程中输出日志信息,帮 助定位问题。
MATLAB中的错误处理机制可以 帮助我们捕获和处理运行时错误 。
matlab程序优化方法探讨
显示结果
命令执行后,结果将在命令窗口中显示。
保存结果
可以使用`save`命令将结果保存到文件中。
matlab变量定义与赋值
定义变量
使用`varname = value`格式定义变 量,其中`varname`是变量名, `value`是变量的值。
赋值操作
使用`=`运算符将值赋给变量。例如 ,`a = 10`将值10赋给变量a。
matlab教程ppt(完整版)
控制流语句
使用条件语句(如if-else)和 循环语句(如for)来控制程序 流程。
变量定义
使用赋值语句定义变量,例如 `a = 5`。
矩阵运算
使用矩阵进行数学运算,如加 法、减法、乘法和除法等。
函数编写
创建自定义函数来执行特定任 务。
02
MATLAB编程语言基础
变量与数据类型
变量命名规则
数据类型转换
编辑器是一个文本编辑器 ,用于编写和编辑 MATLAB脚本和函数。
工具箱窗口提供了一系列 用于特定任务的工具和功 能,如数据可视化、信号 处理等。
工作空间窗口显示当前工 作区中的变量,可以查看 和修改变量的值。
MATLAB基本操作
数据类型
MATLAB支持多种数据类型, 如数值型、字符型和逻辑型等 。
04
MATLAB数值计算
数值计算基础
01
02
03
数值类型
介绍MATLAB中的数值类 型,包括双精度、单精度 、复数等。
变量赋值
讲解如何给变量赋值,包 括标量、向量和矩阵。
运算符
介绍基本的算术运算符、 关系运算符和逻辑运算符 及其优先级。
数值计算函数
数学函数
列举常用的数学函数,如 三角函数、指数函数、对 数函数等。
矩阵的函数运算
总结词:MATLAB提供了许多内置函 数,可以对矩阵进行各种复杂的运算
。
详细描述
矩阵求逆:使用 `inv` 函数求矩阵的 逆。
特征值和特征向量:使用 `eig` 函数 计算矩阵的特征值和特征向量。
行列式值:使用 `det` 函数计算矩阵 的行列式值。
矩阵分解:使用 `factor` 和 `expm` 等函数对矩阵进行分解和计算指数。
第二讲 MATLAB 绘图
绘制y=1-exp(0.3*t).*cos(0.7*t)
t=6*pi*(0:100)/100; y=1-exp(-0.3*t).*cos(0.7*t); tt=t(find(abs(y-1)>0.05)); ts=max(tt); plot(t,y,'r-'); grid on; axis([0,6*pi,0.6,max(y)]); title('y=1-exp(-\alpha*t)*cos(\omega*t)'); hold on; plot(ts,0.95,'bo'); hold off; set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)]); grid on;
绘制曲线
x t cos(3t ) , t 2 y t sin t
t = -pi:pi/100:pi; x = t.*cos(3*t); y = t.*sin(t).^2; plot(x,y)
2015-5-14 10
图形标识
图形标识包括:
图名(title) 坐标轴名(xlabel、ylabel) 图形文本注释(text) 图例(legend)
2015-5-14 22
双纵坐标:plotyy指令
plotyy指令调用格式:
plotyy(x1, y1, x2, y2)
x1-y1曲线y轴在左, x2-y2曲线y轴在右。
例3.7:
x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); plotyy(x,y1,x,y2);
MATLAB编程基础第讲二维及特殊坐标系二维绘图
(1) 当x是向量,y是有一维与x同维的矩阵 时,则绘制出多根不同颜色的曲线。曲 线条数等于y矩阵的另一维数,x被作为 这些曲线共同的横坐标。
(2) 当x,y是同维矩阵时,则以x,y对应列元 素为横、纵坐标分别绘制曲线,曲线条 数等于矩阵的列数。
(3) 对只包含一个输入参数的plot函数, 当输入参数是实矩阵时,则按列绘制 每列元素值相对其下标的曲线,曲线 条数等于输入参数矩阵的列数。
给坐标加网格线用grid命令来控制。grid on/off命令 控制是画还是不画网格线,不带参数的grid命令 在两种状态之间进行切换。
给坐标加边框用box命令来控制。box on/off命令控 制是加还是不加边框线,不带参数的box命令在两 种状态之间进行切换。
例7 在同一坐标中,可以绘制3个同心圆,并加坐标控制。
谢谢大家!
plot函数最简单的调用格式是只包含一个输入参数:
plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横
坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘 制折线图。
x=0:0.1:2*3.14
plot(x); 或者
x=0:0.1:2*3.14
y=sin(x);
plot(y);
二、 绘制多根二维曲线
当输入参数是复数矩阵时,则按列分别 以元素实部和虚部为横、纵坐标绘制 多条曲线。
2.含多个输入参数的plot函数
调用格式为:
plot(x1,y1,x2,y2,…,xn,yn)
(1) 当输入参数都为向量时,x1和y1,x2和 y2,…,xn和yn分别组成一组向量对, 每一组向量对的长度可以不同。每一向 量对可以绘制出一条曲线,这样可以在 同一坐标内绘制出多条曲线。
MATLAB作图(超详细)
2020/5/31
数学建模
3. 对数坐标图
在很多工程问题中,通过对数据进行对数转换可以 更清晰地看出数据的某些特征,在对数坐标系中描绘数 据点的曲线,可以直接地表现对数转换.对数转换有双对 数坐标转换和单轴对数坐标转换两种.用loglog函数 可以实现双对数坐标转换,用semilogx和semilogy 函数可以实现单轴对数坐标转换. loglog(Y) 表示 x、y坐标都是对数坐标系
单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为 中心的图形放大2倍;单击鼠标右键,则缩小2倍.
zoom off 关闭缩放模式
grid on
%标注格栅
MATLAB liti37
例 创建一个简单的半对数坐标图. 解 输入命令:
x=0:.1:10;
semilogy(x,10.^x)
MATLAB liti38
例 绘制y=x3的函数图、对数坐标图、半对数坐标图.
2020/5/31
MATLAB liti22 数学建模
返回
三维图形 1. 空间曲线 2. 空间曲面
semilogx(Y) 表示 x坐标轴是对数坐标系
semilogy(…) 表示y坐标轴是对数坐标系
plotyy 有两个y坐标轴,一个在左边,一个在右边
2020/5/31
数学建模
例 用方形标记创建一个简单的loglog.
解 输入命令:
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
数学建模
返回
2. 定制坐标 Axis([xmin xmax ymin ymax zmin zmax])定制图形坐标
x、y、z的最大、最小值
Axis
将坐标轴返回到自动缺省值
第二章之matlab绘图PPT课件
fmj 3/26/2021
.
16
二维作图举例
点线
先画点,后连线 例:y = sin(x), 0 < x < 2
二、连线
>>x=[0:0.5:2*pi]; >> y=sin(x); >> plot(x,y,'r.-')
fmj 3/26/2021
ห้องสมุดไป่ตู้
.
17
二维作图举例
三、加密:取更多的点
>>x=[0:0.1:2*pi]; >> y=sin(x); >> plot(x,y,'.')
fmj 3/26/2021
.
5
图形的属性
点和线的基本属性
plot(x,y,string)
其中 string 是用 单引号 括起来的字符串,用来指定图形
的属性(点、线的形状和颜色) 红色、虚线、
>> x=[0:0.2:2*pi];
离散点用加号
>> plot(x,cos(x));
>> plot(x,cos(x),'r+:'); 属性可以全部指定,也
2.5 MATLAB 绘图
问题:如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
fmj 3/26/2021
.
1
2.5 MATLAB 绘图
手工作图
找点: x=0, pi/4, pi/2, 2*pi/3, pi, … 计算函数值:
y=sin(0), sin(pi/4), sin(pi/2), … 描点:在坐标系中画出这些离散点
>> plot(x,cos(x),'bd-.'); 可以只指定其中某几个 >> plot(x,cos(x),'k*-'); 排列顺序任意
MATLAB绘图(第2讲)解析
第四章 MATLAB 绘图复习:一 、 MATLAB 绘图的一般步骤 1、 取点。
2、 输入作图命令,绘制图形。
二、二维图形的绘制直角坐标系中,二维曲线的作图命令有:Plot 、fplot 、ezplot Plot ():plot(X,’s ’),plot(x,y,’s ’),plot(X,Y,’s ’) Fplot ():ezplot(‘f ’),ezplot(‘f ’,[xmin,xmax]), ezplot(‘x(t)’,’y(t)’,[xmin,xmax]),fplot(‘fun ’,lims)ezplot ():polar(theta ,rho ,’s ’),ezpolar(‘f ‘),ezpolar(‘f ‘ ,[a ,b])第六讲二 极坐标系由一条带箭头的射线构成,射线端点称为极坐标的极点,射线称为极轴。
在极坐标系中平面内的点可极角theta 、极径rho 确定,一般极径rho 被看作是极角theta 的函数,即rho=f(theta)命令格式说 明polar(theta ,rho ,’s ’) 输入时theta 可换为x ,rho 可换为y ,用法与plot 命令相同 ezpolar(‘f ‘) 在默认区间()π2,0上绘制函数rho=f(theta)的图形,用法与ezplot 命令相同。
ezpolar(‘f ‘ ,[a ,b])在区间(a ,b )上绘制函数rho=f(theta)的图形例:阅读并运行下列程序:1、心形线: 一般方程形式:)cos 1(θ±=a r , )sin 1(θ±=a r (a 为常数)>> x=0:0.05*pi:2*pi; >> y=2*(1+cos(x)); >> polar(x,y)2、三叶玫瑰线:θ3sin a r = , θ3cos a r =四叶玫瑰线:θ2cos a r =, θ2sin a r =>> ezpolar('2*cos(3*x)')>> ezpolar('sin(t)/t',[-6*pi,6*pi])>> x=0:pi/100:2*pi;>> y1=3*cos(x);y2=1+cos(x);>> polar(x,y1,'r')>> hold on %保持当前图形不被刷新,hold off为解除保持图形的命令>> polar(x,y2)三多子图命令:MATLAB允许在同一图形窗里布置几幅独立的子图,子图命令为subplot 格式:subplot(m,n,k) ,把窗口分割成m n个子绘图区域的第k个子图,子绘图区域按从左到右编号,k为子图编号。
matlab基础课程2(绘图)
四、MATLAB三维曲面绘图
meshgrid——生成网格矩阵 调用格式:
[X,Y]=meshgrid(x,y)--------生成小矩形顶点的坐
标值矩阵
[X,Y]=meshgrid(x) 等价于[X,Y]=meshgrid(x,x)
例:x=[1,2,3];y=[1,2,3,4]; [X,Y]=meshgrid(x,y)
xlabel(‘String’)
在当前图形的x轴旁边加入文字内容
ylabel(‘String’)
zlabel(‘String’)
在当前图形的y轴旁边加入文字内容
在当前图形的z轴旁边加入文字内容
图形标注gtext
gtext(‘String’)
在鼠标指定位置上标注
说明:使用gtext指令后,会在当前图形上出现一个十字 叉,等待用户选定位置进行标注。移动鼠标到所需位置按 下鼠标左键,Matlab就在选定位置标上文字。
马鞍面、平面及交线
练习: 二维曲线4-4,4-5 p42 例4-9 p47 例4-11,4-12
三维曲线:
p57 例4-22,4-23,4-24
三维曲面:
p60 例4-26,4-28,4-29,4-30
作业:P79 3,5,9
x=[1 2 3]; y=[3 3 1 473 581 4 4 4] plot(x,y)
plot3与plot的 用法相同
,
x t sin t 例:绘制三维曲线的图像: y t cos t z t
解:matlab命令为:
(0 t 20 )
t=0:pi/10:20*pi; x=t.*sin(t); y=t.*cos(t) ; z=t; plot3(x,y,z)
MATLAB程序设计及应用第2版课件全全书教学教程完整版电子教案最全幻灯片
第1章 MATLAB入门与基本操作
1.3 MATLAB的安装启动 与操作桌面简介
1.3.1 MATLAB的安装和启动
MATLAB 可以在Windows环境下直接安装。在
MATLAB安装完成后,会在Windows桌面上自动生成
MATLAB的快捷方式图标
。
1.3.1 MATLAB的安装和启动
双击图标
1.3.2 MATLAB默认窗口简介
• 指令窗(Command Window) 该窗口是进行各种MATLAB操作的最主要窗口。它位于 MATLAB默认窗口的正中间。用户可以在该窗口中提示符 “fx>>”后直接键入指令,按“Enter”键后,即可运行并 显示除窗口外的所有运行结果。当指令窗口提示符为 “fx>>”时,表示系统已经准备好,用户可以输入指令、函 数、表达式,按“Enter”键后便可执行。
1.4 MATLAB指令窗操作入门
,就打开了如图1.1所示的MATLAB默认窗口
(Desktop)。
图1.1
1.3 MATLAB的安装启动 与默认窗口简介
1.3.2 MATLAB默认窗口简介
图1.1所示的MATLAB默认窗口分为5个区域:指令窗、 当前目录窗、历史指令窗、工作空间窗和Details窗。 另外,在MATLAB默认窗口的上方,还嵌入了菜单栏 和工具栏,如图1.1所示。它们的使用及选择方式与 Windows环境中的相同。
图1.2
第1章 MATLAB入门与基本操作
1.4 MATLAB指令窗操作入门
1.4.1 MATLAB指令窗简介
MATLAB指令窗位于MATLAB默认窗口的正中间,如图 1.1所示。如果用户希望得到脱离默认窗口的几何独立的指 令窗,只要单击图1.2中的图标 ,并在下拉菜单中选择
MATLAB第二章
function [egg1,egg2,chicken1]=myegg(n)
% egg1 隔1天的蛋个数 % egg2 隔2天的蛋个数 % chicken1 过n天后母鸡个数 if n==1
egg1=1; egg2=0; chicken1=1; elseif n==2 egg1=1; egg2=1; chicken1=1;
27
>> x=0:0.1:2*pi; >> y=sin(x); >> plot(x,y) >> plot(x,y,‘ro’) %默认是蓝色曲线 >> x=[0 1 2 5];y=[4 -2 1 2]; >> plot(x,y) >> fplot(‘x^2+4*x+1’,[-15 15]) %函数用字符串表示
1 -8 4 9 -4 5 7 -9 >> fun=@myfun5 %例28中的函数 fun =
@myfun5 >> y=fun(A) %直接调用 y=
1 -13 16 81 -5 25 49 -15 >> y=feval(fun,A) %利用feval y=
1 -13 16 81 -5 25 49 -15
1 4 9 16 5 10 15 20
2024/7/5
第二章 MATLAB编程与作图
24
>> k=5;
>> ff=@(x)x^2+2*x+k %可以使用空间中的变量k
ff =
@(x)x^2+2*x+k
>> ff(5)
ans =
40
>> A=[1 2 ;3 4]
MatLab软件在数学建模中画图编程
MatLab软件在数学建模中画图编程MatLab&数学建模第⼆讲MatLab图形绘制功能⼀、⼆维平⾯图形基本绘图函数hold on命令⽤于在已画好的图形上添加新的图形plot是绘制⼀维曲线的基本函数,但在使⽤此函数之前,我们需先定义曲线上每⼀点的x及y座标。
下例可画出⼀条正弦曲线:x=0:0.001:10;%0到10的1000个点的x座标y=sin(x);%对应的y座标plot(x,y);%绘图Y=sin(10*x);plot(x,y,'r:',x,Y,'b')%同时画两个函数若要改变颜⾊,在座标对後⾯加上相关字串即可:x=0:0.01:10;plot(x,sin(x),'r')若要同时改变颜⾊及图线型态(Line style),也是在坐标对後⾯加上相关字串即可:plot(x,sin(x),'r*')⽤axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围axis([0,6,-1.5,1])MATLAB也可对图形加上各种注解与处理:xlabel('x轴');%x轴注解ylabel('y轴');%y轴注解title('余弦函数');%图形标题legend('y=cos(x)');%图形注解gtext('y=cos(x)');%图形注解,⽤⿏标定位注解位置grid on;%显⽰格线fplot的指令可以⽤来⾃动的画⼀个已定义的函数分布图,⽽⽆须产⽣绘图所须要的⼀组数据做为变数。
其语法为fplot('fun',[xmin xmax ymin ymax]),其中fun 为⼀已定义的函数名称,例如sin,cos等等;⽽xmin,xmax,ymin,ymax则是设定绘图横轴及纵轴的下限及上限。
以下的例⼦是将⼀函数f(x)=sin(x)/x 在-20>>fplot('sin(x)./x',[-2020-0.41.2])【例】画椭圆1232222=+y x a =[0:pi/50:2*pi]';%⾓度π20-X =cos(a)*3;%参数⽅程Y =sin(a)*2;plot(X,Y);xlabel('x'),ylabel('y');title('椭圆')图形窗⼝的分割⼀般⽤命令subplot: subplot(2,2,1);subplot(2,3,4);MATLAB还有其他各种⼆维绘图函数,以适合不同的应⽤,详见下表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二讲Matlab编程与作图第一部分Matlab程序设计初步Matlab除了指令行操作的直接交互外,作为一种高级应用软件还提供了自己的编程语言。
通过编写Matlab程序,可以更加方便地调用Matlab提供的各种功能强大的函数库,使得程序能完成复杂的运算处理大量的数值数据。
1、M文件简介Matlab提供了丰富的编程语言,使得用户可以将一连串的命令写入文件,然后使用简单的函数来执行这些命令。
文件被保存为文本文件,后缀为.m,比如说dblquad.m,因此Matlab的程序通常被称为M 文件。
M文件是一个文本文件,可以使用各种文本编辑器对它进行编辑和修改,比如Windows操作系统自带的记事本,也可以用Matlab 内建的M文件编辑器。
M文件分为两类,一类称为脚本(Scripts),类似于批处理文件,相当于将在Matlab命令窗口中执行的一系列指令放在一个文件中,当在命令窗口调用该文件名时,则按顺序执行其中的命令集。
例2.1:编写求10!的程序。
n=10;s=1;for k=1:ns=s*k;enddisp(s) %disp:MATLAB中的命令,表示只显示结果,不显示变量名。
另一类M文件称为函数(Function),它可以接受输入变量,并将运算结果送至输出变量,类似于数学中的函数y=f(x)。
函数M文件的基本结构:function f=fact(n) 函数定义行%Compute a factorial value. 计算阶乘的值%FACT(N) returns the factorial of N, 帮助文档%usually denoted by N!%Put simply,FACT(N) is PROD(1:N), 注释f=prod(1:n); 函数体例2.2:编写分段函数21() 1 -1<1321x xf x xx x⎧>⎪=≤⎨⎪+≤-⎩%myfun1.mfunction y=myfun1(x)y=(x.^2).*(x>1)+(x>-1& x<=1)+(3+2*x).*(x<=-1);注意:1.函数名与变量名的命名法则相同,要求以字母开头,后接字母或下划线;2.函数名与保存的文件名最好一致。
2、控制流所有的计算机编程语言都提供了控制程序流执行程序的语法,Matlab也不例外。
所有的控制流语法都以end 结尾。
⑴for 循环语句语法:for 循环变量=数组指令组;end解释:对于循环变量依次取数组中的值,循环执行指令组直到循环变量遍历数组。
数组最常用的形式是 初值:步长:终值。
例2.3:构造Hilbert 矩阵function H=hilbert(n)H=zeros(n,n);for i=1:nfor j=1:nH(i,j)=1/(i+j-1);endend⑵while 循环语法:while 条件式指令组;end解释:当条件式满足,循环执行指令组直到条件式不满足。
使用while 语句要注意避免出现死循环。
例2.4:利用迭代公式11()2k k ka x x x +=+要求误差不超过指定精度。
[Sqrt.m]function x1=Sqrt(a,tol)% y=Sqrt(a,tol)% 用牛顿迭代法求正数a的算术平方根% tol为容许误差x0=0; %初始值x1=a/2;while abs(x1-x0)>tolx0=x1;x1=(x0+a/x0)/2;end⑶分支语句语法:if 条件表达式1指令组1;[ elseif 条件表达式2指令组2;][·······][ else指令组k;]end解释:如果条件表达式1满足,则执行指令组1,且结束该语句;否则检查条件表达式2,若满足则执行指令组2,且结束该语句;······;若所有的条件都不满足,则执行指令组k,并结束该语句。
例2.5:用条件语句编写例2.2的分段函数[myfun2.m]⑷开关语句语法:switch 分支变量case 值1指令组1;case 值2指令组2;··········otherwise指令组k;end解释:若分支变量的值取值1,则执行指令组1,且结束该语句,若分支变量的值取值2,则执行指令组2,且结束该语句,······若分支变量不取所列出的值,则执行指令组k。
⑸其它常用指令●input指令提示用户从键盘输入数值、字符串或表达式,并接收该输入,语法为:user_entry=input(‘message’)user_entry=input(‘message’,’s’)●pause 指令使程序运行暂停,语法为pause:暂停执行程序,等待用户按任意键继续。
pause(n):使程序暂停n秒后继续执行。
例2.6:for n=1:4x=-1:0.1:1;y=x.^n;plot(x,y)pauseend●return 指令结束return 指令所在函数的执行,返回到主调函数或者命令窗口。
●break 指令中断执行,用在循环语句内表示跳出循环。
●error(’message’)显示出错信息,终止程序执行。
4、其它一些有用的函数●fcnchk 函数验证函数f=fcnchk(fun),fun可以是由字符串表示的函数表达式,(这时返回一个inline函数),也可以是函数句柄,或是函数名字符串。
f=fcnchk(fun,‘vectorized’),生成向量化函数,例如用.*代替* 举例将intfzero.m 文件中的语句f=inline(fun);换成f=fcnchk(fun);●nargin ,nargout 函数中输入参数或输出参数的个数。
●% 注释语句●find 寻找数组中非零元素对应的下标。
S=find(A),[I,J]=find(A)●取整函数round(x),ceil(x),floor(x),fix(x)例2.7:编写用二分法求函数零点的程序。
[bisection.m] 两端切断function [x,N]=bisection(fun,a,b,tol)% x=bisection(fun,a,b,tol)% 二分法求方程的根if nargin<3,error('输入参数不足');endif nargin<4,tol=1e-6;end % 缺省精度f=fcnchk(fun);if f(a)*f(b)>0,error('区间端点的函数值要异号');endN=0;% 记录二分次数while abs(b-a)>tolx=(a+b)/2;N=N+1;if f(x)==0returnelseif f(x)*f(a)<0b=x;else a=x;endendx=(a+b)/2;例2.8:求Fibonacci 数列:12121,,3,4,k k k F F F F F k --===+=L ,并验证极限1k k F F -。
编写求Fibonacci 数列的函数[fib,m]:function x=fib(n)x=ones(1,n);if n<=2,return ;endfor k=3:nx(k)=x(k-2)+x(k-1);end编写求Fibonacci 数列第n 项的函数[fibn.m]:function f=fibn(n)if n<=2,f=1;else f=fibn(n-1)+fibn(n-2); %递归方法end验证极限112k k F F -→: n=2;x0=(1+sqrt(5))/2;L=[];while abs(fibn(n)/fibn(n-1)-x0)>1e-8L=[L,fibn(n)/fibn(n-1)];n=n+1;end第二部分Matlab作图1、曲线图●plot(x,y) 作出以数据(x(i),y(i))为节点的折线图,其中x,y为同维数的向量。
●plot(x,y,s) 其中s是由颜色、标记、线型参数组成的字符串颜色标记线型b blue . point - solidg green o circle : dottedr red x x-mark -. dashdotc cyan + plus -- dashedm magenta * star (none) no liney yellow s squarek black d diamondw white v triangle (down)^ triangle (up)< triangle (left)> triangle (right)p pentagramh hexagram●plot(x1,y1,s1,x2,y2.s2,…) 在同一个坐标系中作出由向量对(x1,y1),(x2,y2),…为节点的折线。
例:在同一坐标系中作出函数31=--和0.2sin(5)y x x=在区间[-1,2]y x x上的图形。
●hold on (off) 保持(释放)图形窗口●polar(theta,rho) 作以(theta,rho)为坐标的极坐标图形,theta,rho为同维数的向量例:作出四叶玫瑰线4sin2ρθ=的图形。
●fplot(fun,[a,b]) 作出函数fun 在区间[a,b]上的图形。
●plot3(x,y,z) 作空间曲线的图形,x,y,z为同维向量。
例:作出曲线sin,cos,x t t y t t z t===的图形。
●subplot(m,n,k) 将图形窗口分成m n⨯个子图形窗口,将当前操作定位在第k个子图形窗口。
2、曲面图[X,Y]=meshgrid(x,y) 生成以数组x,y为坐标的网格矩阵mesh(X,Y,Z) 绘制网面图,X、Y、Z是同维矩阵surf(X,Y,Z) 绘制曲面图,与mesh 用法类似。
例:作出曲面22x y=在22,22z xe---≤≤-≤≤上的图形x y●ezmesh(fun) 轻松绘出二元函数fun 的曲面图(easy to use mesh)绘图区域为[2,2,2,2]ππππ--● ezmesh(fun,[xmin,xmax,ymin,ymax]) 在指定区域绘图● ezmesh(fun,…,’circ ’) 绘图区域为圆域上机练习1、设x 为一个长度为n 的数组,编程求下列均值和标准差11,1n i i x x s n n ===>∑ 2、求满足0ln(1)100mn n =+>∑的最小m 值。