第二讲 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
逆矩阵
可以使用`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(完整版)

汇报人:可编辑
2023-12-24
目录
• MATLAB基础 • MATLAB编程 • MATLAB矩阵运算 • MATLAB数值计算 • MATLAB可视化 • MATLAB应用实例
01
CATALOGUE
MATLAB基础
MATLAB简介
MATLAB定义
MATLAB应用领域
菜单栏
包括文件、编辑、查看、主页 、应用程序等菜单项。
命令窗口
用于输入MATLAB命令并显示 结果。
MATLAB主界面
包括命令窗口、当前目录窗口 、工作空间窗口、历史命令窗 口等。
工具栏
包括常用工具栏和自定义工具 栏。
工作空间窗口
显示当前工作区中的变量。
MATLAB基本操作
变量定义
使用变量名和赋值符号(=)定义变 量。
详细描述
直接输入:在 MATLAB中,可以直 接通过输入矩阵的元 素来创建矩阵。例如 ,`A = [1, 2, 3; 4, 5, 6; 7, 8, 9]`。
使用函数创建: MATLAB提供了多种 函数来创建特殊类型 的矩阵,如`eye(n)`创 建n阶单位矩阵, `diag(v)`创建由向量v 的元素构成的对角矩 阵。
使用bar函数绘制柱状图 ,可以自定义柱子的宽
度、颜色和标签。
使用pie函数绘制饼图, 可以自定义饼块的比例
和颜色。
三维绘图
01
02
03
04
三维线图
使用plot3函数绘制三维线图 ,可以展示三维空间中的数据
点。
三维曲面图
使用surf函数绘制三维曲面图 ,可以展示三维空间中的曲面
。
三维等高线图
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绘图

说明:
(1)当x,y是同维矩阵时,则以x,y对应列元素为
横、纵坐标分别绘制曲线,曲线条数等于矩阵
的列数。 (2)当x是向量,y是有一维与x同维的矩阵时, 则绘制出多根不同色彩的曲线。曲线条数等于 y矩阵的另一维数,x被作为这些曲线共同的横
坐标。
(3)plot函数最简单的调用格式是只包含一个输 入参数:plot(x)。
对图形窗口灵活分割。请看下面的程序。
x=linspace(0,2*pi,60);
y=sin(x);z=cos(x);
t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); stairs(x,y); title('sin(x)-1');axis ([0,2*pi,-1,1]); %选择2×2个区中的1号区
2.2.1绘制三维曲线的最基本函数 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)
4. 对函数自适应采样的绘图函数
fplot函数的调用格式为: fplot(fname,lims,tol,选项) 例2.11 用fplot函数绘制f(x)=cos(tan(πx))的曲线。 先建立函数文件myf.m: function y=myf(x) y=cos(tan(pi*x));
再用fplot函数绘制myf.m函数的曲线:
例2.6 用图形保持功能在同一坐标内绘制曲线
y=2e-0.5xsin(2πx)及其包络线,并加网格线。
程序如下: x=(0:pi/100:2*pi)'; y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y1,'b:'); axis([0,2*pi,-2,2]); %设置坐标 hold on; %设置图形保持状态 plot(x,y2,'k'); grid on; %加网格线 box off; %不加坐标边框 hold off; %关闭图形保持
第二章之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)
- 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 --===+=,并验证极限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验证极限1k 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),…为节点的折线。
例:在同一坐标系中作出函数31y x x =--和0.2sin(5)y x x =在区间[-1,2]上的图形。
● hold on (off) 保持(释放)图形窗口● polar(theta,rho) 作以(theta,rho )为坐标的极坐标图形,theta,rho为同维数的向量例:作出四叶玫瑰线4sin 2ρθ=的图形。
● 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 z xe --=在22,22x 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 值。