第二讲 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)
MATLAB入门与作图实用数学建模为例ppt课件
设:a=[a1,a2,…,an], b=[b1,b2,…,bn] 则:a+b= [a1+b1,a2+b2,…,an+bn]
a.*b= [a1*b1,a2*b2,…,an*bn]
a./b= [a1/b1,a2/b2,…,an/bn]
MATLAB(fun)
返回
二、数 组
MATLAB(shuzu1)
1. 创建简单的数组 x=[a b c d e f]创建包含指定元素的行向量.
x=first:last
创建从first开始,加1计数,到last结束的行向量.
x=first:increment:last
创建从first开始,加increment计数,到last结束的 行向量.
while (expression) {commands}
end
只要在表达式(expression)里的所有元素为真,就执行 while和end语句之间的命令串{commands}.
例 设银行年利率为11.25%.将10000元钱存入银行,问 多长时间会连本带利翻一番?
MATLAB(while1)
3. if-else-end结构 (1)有一个选择的一般形式是:
MATLAB(shuzu2)
3. 数组的方向
前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量. 数组也可以是列向量,它的数组操作和运 算与行向量是一样的,唯一的区别是结果以列形式显示.
产生列向量有两种方法: 直接产生 例 c=[1;2;3;4] 转置产生 例 b=[1 2 3 4]; c=b′
后将该点集的坐标传给MATLAB函数画图.
matlab7.0操作课件精讲
Matlab 绘图
Matlab 作图
给出离散点列: x=[0:pi/10:2*pi] 计算函数值: y=sin(x)
画图:matlab 二维绘图命令 plot 作出函数图形 plot(x,y)
例:>> x=[0:pi/10:2*pi];
>> y=sin(x); >> plot(x,y);
在MATLAB中用图形函数绘图的一般操作步骤分 为7步,如表所示,下面以绘制一个简单三角函数 的图形为例,详细介绍各个步骤。
>>x=rand(100,1); >>z=x+y.*i; >>plot(z)
以下标为横坐标,元素值为纵坐标,等价于: x=[1:length(y)];plot(x,y);
例:>> y=[0,0.48,0.84,1,0.91,6.14];
>> plot(y); >> figure(2); plot([1:length(y)], y)
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
0.5
1
1.5
2
2.5
3
3.5
图形的其他属性
图形标注与坐标控制 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,…)
其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐 标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据 对,右纵坐标用于x2,y2数据对。
matlab7.0实用教程课件-第二讲
第二讲 Matlab数值计算
1.2 Matlab矩阵的创建
创建数组变量的一般方法
创建变量的赋值语句的一般格式 var=expression var为变量名 expression为MATLAB合法表达式
可以是单独的常数值或数值数组; 也可以由常数值、其他变量(部分或全部)、数 值数组和运算符(+、-等)构成。
【例2-1】键入并执行a2=[1 2 3;4 5 6;7 8 9] 【例2-2】键入并执行a2=[1:3;4:6;7:9] %结果同上
2015/10/25 College of Mechanical Engineering of University of South China , Hunan Hengyang
1
2
3
2
3 15
4
第二讲 Matlab数值计算
1.2 Matlab矩阵的创建
方法二:函数法(p104-107)
函数ones(生成全1矩阵)、zeros (生成全0矩阵) 、 eye(单位矩阵)、reshape(由向量重构生成矩阵)
【例2-4】创建全1的3〓3矩阵。 >> eye(2,3) >>ones(3) 【例2-5】创建全0的2〓3矩阵。 ans = >>zeros(2,3) 【例2-6】创建2〓3的单位矩阵。 1 0 0 >>eye(2,3) 思考题:若已知矩阵A,如何求与A同阶的单位
2015/10/25 College of Mechanical Engineering of University of South China , Hunan Hengyang 9
第二讲 Matlab数值计算
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还有其他各种⼆维绘图函数,以适合不同的应⽤,详见下表。
MATLAB入门教程(2) 二维绘图
MATLAB 的二维绘图基础了解了MATLAB 的矩阵和向量概念与输入方法之后,MATLAB 的二维绘图再简单也不过了。
假设有两个同长度的向量 x 和y, 则用plot(x,y) 就可以自动绘制画出二维图来。
如果打开过图形窗口,则在最近打开的图形窗口上绘制此图,如果未打开窗口,则开一个新的窗口绘图。
〖例〗正弦曲线绘制:>> t=0:.1:2*pi;%生成横坐标向量,使其为0,0.1,0.2,...,6.2y=sin(t); % 计算正弦向量plot(t,y) %绘制图形这样立即可以得出如图所示的二维图[4.1(a)]plot() 函数还可以同时绘制出多条曲线,其调用格式和前面不完全一致,但也好理解。
>> y1=cos(t); plot(t,y,t,y1); %或plot(t,[y; y1]), 即输出为两个行向量组成的矩阵。
图形见 4.1(b)。
plot() 函数最完整的调用格式为:>> plot(x1,y1,选项1, x2,y2, 选项2, x3,y3, 选项3, ...)其中所有的选项如表 4.1 所示。
一些选项可以连用,如'-r' 表示红色实线。
由MATLAB 绘制的二维图形可以由下面的一些命令简单地修饰。
如>> xlabel('字符串') % 给横坐标轴加说明>> ylabel('字符串') % 给纵坐标轴加说明,%并自动旋转90度>> title('字符串') % 给整个图形加图题得出的图形如右图所示。
axis() 函数可以手动地设置x,y 坐标轴范围还可以使用plotyy() 函数绘制具有两个纵坐标刻度的图形。
坐标系的分割在MATLAB 图形绘制中是很有特色的,比较规则的分割方式是用subplot() 函数定义的,其标准调用格式为subplot(n,m,k)其中,n 和m 为将图形窗口分成的行数和列数,而k 为相对的编号。
第02讲 MATLAB语言基础
第二讲M A T L A B语言目录一、M A T L A B语言基础 (3)§2.1.1、M A T L A B的数据 (3)1、数值表示方式 (3)2、数值显示格式 (3)3、永久变量 (4)§2.1.2、M A T L A B的运算符 (4)1、算术运算符 (4)2、关系运算符 (5)3、逻辑运算符 (5)§2.1.3、M A T L A B的函数 (5)1、基本函数 (5)2、自定义函数 (6)§2.1.4、M A T L A B的矩阵产生 (6)1、矩阵的几种样式 (6)2、直接用数据产生矩阵 (6)3、利用增量产生矩阵 (7)4、利用函数产生矩阵 (7)5、利用矩阵产生矩阵 (7)§2.1.5、M A T L A B的矩阵操作 (8)1、寻访矩阵中的数据 (8)2、修改数据 (8)3、插入、重排、提取、拉长、置空 (8)4、矩阵的规模 (8)二M A T L A B语言应用 (9)§2.2.1、矩阵运算 (9)(1)概述 (9)(2)矩阵的加减法 (9)(3)矢量积与转置 (10)(4)复数的共轭与转置 (11)(5)矩阵的乘法 (11)(6)矩阵的除法 (13)(7)矩阵的乘幂 (14)(8)解线性方程 (15)§2.2.2、多项式运算 (16)04-1(1)多项式的表示 (16)(2)多项式的值 (16)(3)多项式的根 (17)(4)多项式的系数 (17)(5)多项式的积: (18)(6)多项式的商: (18)(7)多项式的导数 (18)(8)多项式的曲线拟合 (19)§2.2.3、字符运算 (19)(1)字符数组 (19)(2)字符与数值的转换 (20)(3)字符串比较 (20)§2.2.4、符号运算 (21)(1)符号定义 (21)(2)因式分解 (21)(3)简化 (22)(4)反函数 (22)(5)求和 (23)(6)d i f f(f,v,n)-求导 (23)(7)i n t(f,v,a,b)-积分 (24)§2.2.5、N O T E B O O K操作 (24)04-2【正文】基本语句:[变量1,变量2,...]=表达式(参数1,参数2,...)常量3e8、[1,2;3,4]数据变量A=[1,2,3;4,5,6]永久变量p i、i算术运算符+、-、*、/表达式运算符关系运算符>、<、=逻辑运算符&、|、~内部函数s i n、c o s函数工具箱扩展函数i m r e a d自定义函数m y f一、M A T L A B语言基础§2.1.1、M A T L A B的数据1、数值表示方式M A T L A B环境下的数值(矩阵的元素)一般采用十进制,可以带小数点和正负号,以下数值都是合法的:5、+10、-20.56、0.0045、-1000.、1.3e-4、100e20、-0.023e-0122、数值显示格式M A T L A B内部数据运算都按双精度数据格式进行运算,不必指定数据格式。
MATLAB入门基本操作和绘图讲座
MATLAB入门基本操作和绘图讲座主讲人:马舒·MATLAB简介1.1 什么是MATLABMATLAB(矩阵实验室)是MATrix LABoratory的缩写,是⼀一款由美国The MathWorks公司出品的商业数学软件。
MATLAB是⼀一种⽤用于算法开发、数据可视化、数据分析以及数值计算的⾼高级技术计算语⾔言和交互式环境。
除了矩阵运算、绘制函数/数据图像等常⽤用功能外,MATLAB还可以⽤用来创建⽤用户界⾯面及与调⽤用其它语⾔言(包括C,C++和FORTRAN)编写的程序。
尽管MATLAB主要⽤用于数值运算,但利⽤用为数众多的附加⼯工具箱(Toolbox)它也适合不同领域的应⽤用,例如控制系统设计与分析、图像处理、信号处理与通讯、⾦金融建模和分析等。
另外还有⼀一个配套软件包Simulink,提供了⼀一个可视化开发环境,常⽤用于系统模拟、动态/嵌⼊入式系统开发等⽅方⾯面。
1.2 MATLAB的主要功能MATLAB的主要提供以下功能:•可⽤用于技术计算的⾼高级语⾔言•可对代码、⽂文件和数据进⾏行管理的开发环境•可以按迭代的⽅方式探查、设计及求解问题的交互式⼯工具 •可⽤用于线性代数、统计、傅⽴立叶分析、筛选、优化以及数值积分等的数学函数•可⽤用于可视化数据的⼆二维和三维图形函数•可⽤用于构建⾃自定义的图形⽤用户界⾯面的各种⼯工具•可将基于MATLAB的算法与外部应⽤用程序和语⾔言(如C、C++、Fortran、Java、COM以及Microsoft Excel)集成的各种函数1.2 MATLAB的工具箱MATLAB的⼀一个重要特点是可扩展性。
作为Simulink和其它所有MathWorks产品的基础,MATLAB可以通过附加的⼯工具箱(Toolbox)进⾏行功能扩展,每⼀一个⼯工具箱就是实现特定功能的函数的集合。
MathWorks提供的⼯工具箱分以下⼏几⼤大类:•数学和优化•统计和数据分析•控制系统设计和分析•信号处理和通讯•图像处理•测试和测量•⾦金融建模和分析•应⽤用程序部署•数据库连接和报表分布式计算这些⼯工具箱⼤大多是⽤用开放式的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 --===+=,并验证极限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 值。