学习matlabMatlab基础知识.docx

上传人:b****1 文档编号:12798189 上传时间:2023-04-22 格式:DOCX 页数:27 大小:56.40KB
下载 相关 举报
学习matlabMatlab基础知识.docx_第1页
第1页 / 共27页
学习matlabMatlab基础知识.docx_第2页
第2页 / 共27页
学习matlabMatlab基础知识.docx_第3页
第3页 / 共27页
学习matlabMatlab基础知识.docx_第4页
第4页 / 共27页
学习matlabMatlab基础知识.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

学习matlabMatlab基础知识.docx

《学习matlabMatlab基础知识.docx》由会员分享,可在线阅读,更多相关《学习matlabMatlab基础知识.docx(27页珍藏版)》请在冰豆网上搜索。

学习matlabMatlab基础知识.docx

学习matlabMatlab基础知识

第二讲Matlab基础知识

1.标识符

把标志变量、常量或文件名的特定字符称为标识符,Matlab规定必须是英文字母、阿拉伯数字和下划线等符号组成的字符串,第一个符号必须是英文字母。

2.Matlab中的数据及变量类型

有三种类型的基本数据:

(1)数值型数据,简称数值(DoubleArray):

一般输入的数字均为数值数据,包含实数、复数。

(2)字符串型数据,简称字符量(CharArray):

用英文格式单引号加以界定的数字、字符、各种符号、表达式、方程式和汉字等。

(3)符号型数据,简称符号量(SymObject):

用sym和syms可以把字符、表达式、方程、矩阵等定义成数学符号,称为符号型数据,运算结果为数学表达式。

在命令窗口中键入class(a),回车可知已有变量a是哪一种类型的数据。

3.变量名及赋值

(略)

2.1数值矩阵

2.1.1永久性数值变量名

除了i、j、pi、eps(浮点运算相对精度10-52)、Inf、NaN外还有,realmin(最小正浮点数2-1022)、realmax(最大正浮点数21023)。

2.1.2数值矩阵的创建

1.直接输入法

>>a=[161;462;938];

>>b=[2-3i,3+5i,2i;3,9i,6;5-i,7i,4];

2.创建特殊数值矩阵的命令输入法

命令格式

功能

命令格式

功能

zeros(n)

输出n阶全零方阵

rand(n)

输出n阶均匀分布的随机方阵

zeros(m,n)

输出m×n全零矩阵

rand(m,n)

输出m×n阶均匀分布的随机矩阵

ones(n)

输出n阶全1方阵

randn(n)

输出n阶正态分布的随机方阵

ones(m,n)

输出m×n全1矩阵

randn(m,n)

输出m×n阶正态分布的随机矩阵

eye(n)

输出n阶单位方阵,n=1时可省略

magic(n)

输出n阶魔方阵(各行各列及主对角线元素和均为

diag(a,k)

输出矩阵a主对角线右移k列时其元素构成的列向量。

k=0时可省略

tril(a)

truilu(a)

输出矩阵a的主对角线下(上)方元素构成的下(上)三角矩阵。

3.变换矩阵结构的命令

flipud(a)——输出矩阵a上下翻转后的矩阵;

fliplr(a)——输出矩阵a左右翻转后的矩阵;

rot90(a,k)——输出矩阵a沿逆时针旋转k个90度后的矩阵,k为正负整数;

rot90(a)——输出矩阵a逆时针旋转90度后的矩阵;

reshape(A,m,n)——输出一个m×n=k阶矩阵,它是由矩阵a的k个元素重新排列构成的矩阵,重排前后元素在矩阵中的符号不变。

4.一批特殊向量(行矩阵)的创建

(1)等差数列型向量的创建

增量输入法:

t=a:

h:

b或t=[a:

h:

b],>>t=(a:

h:

b),a、b为起始值,h为公差,可正,可负,省略时为1.

例如>>t=0:

0.1:

2*pi

线性等分命令

t=linspace(a,b,n),a、b为起始值,n为(b-a)的等分点个数。

例x=linspace(2,2*pi,6)

(2)等比数列型向量的创建

调用格式为:

q=logspace(log10(a),log10(b),n)或q=logspace(as,bf,n),a、b分别为等比数列的初值和终值,n为等比数列划分时的节点数。

例>>q=logspace(0,1,6)

2.1.3数值矩阵的矩阵算法

矩阵算法——按照(线性代数)矩阵理论来运算。

数组算法——把矩阵视为由其元素构成的数据(数组),运算时在参与运算的矩阵的元素之间进行的数与数的运算,如通常的“.*”运算。

便于对大批数据的处理。

1.数值矩阵维数的查验和矩阵的转置

查验矩阵维数命令:

size(a)或size(a,r),r取1输出矩阵的行数;取2输出矩阵的列数。

例b=[3701;7915];size(b)

转置为:

>>c=b'

2.矩阵算法中的矩阵加、减和乘法运算

普通的矩阵算法。

注意:

,a为矩阵,n为整数。

当n>0时,表示n个a相乘;当n<0时,表示n个a相乘的逆。

矩阵a与常数d的和定义为a+d=a+d*ones(size(a))。

3.数值矩阵的求逆及矩阵算法中的除法

(1)求逆命令

矩阵a、b满足ab=ba=e(单位矩阵),格式b=inv(a)

(2)求矩阵的伪逆矩阵

对矩阵b(可以是奇异或长方),同时满足xbx=b和bxb=x的矩阵x称为b的伪逆矩阵,格式x=pinv(b)

(3)左除

解矩阵方程ax=b可得x=a-1b,格式x=inv(a)*b或x=a\b或mldivide(a,b)

(4)右除

解矩阵方程xa=b可得x=ba-1,格式x=b*inv(a)或x=b/a或mrdivide(b,a)

4.矩阵函数

设a为方阵。

expm(z)——

logma(a)——

sqrtm(a)——矩阵a的平方根

funm(a,@f)——矩阵a的任意函数f(a)

2.1.4数值矩阵的数组算法

1.查验向量维数命令

length(a),a为向量输出维数;a为列阵(行阵)时,输出列(行)数;a为长方形矩阵时,输出行和列数。

2.数值矩阵间数组算法的四则运算

a.*b——a与b的对应元素相乘

a.^n——a中每个元素的n次方

a./s,s.\a——a中各元素被s除

a./b,b.\a——a中各元素除以b中对应元素

s./a,a.\s——s被a中各元素除。

3.数组算法中的基本初等函数运算

函数命令

数学意义

函数命令

数学意义

函数命令

数学意义

sin(x)

sinx

round

四舍五入

angle(x)

x的幅角

asin(x)

arcsinx

fix

输出靠零的整数

pow2(x)

2x

cos(x)

cosx

floor

输出靠向的整数

max(x)

各列元素中最大值

sec(x)

secx

ceil

输出靠向的整数

mean(x)

各列元素之平均值

tan(x)

tanx

atan(x)

arctanx

sum(x)

各列元素之和

cot(x)

cotx

exp(x)

ex

rem(x1,x2)

或mod(x1,x2)

矩阵x1除以x2元素的余数

sinh(x)

双曲正弦

log(x)

lnx

cosh(x)

双曲余弦

log2(x)

long2x

median(x)

各列元素的中间值

real(x)

x的实部

log10(x)

lgx

prod(m:

n)

m(m+1)…(n-1),m<1

imga(x)

x的虚部

sqrt(x)

pactorial(x)

x!

x为非负整数矩阵,这时输出个元素阶乘

sign(x)

符号函数

abs(x)

x的绝对值

5.向量的点积和叉积

点积:

dot(a,b)叉积:

cross(a,b)

2.2字符串和符号矩阵

2.2.1字符串变量和函数求值

字符串在数据处理、造表和函数求值运算中非常有用。

●用单引号界定的排成的各种符号,包括数字、英文、汉字、横线、括号及表达式、方程式等。

例如>>a='Iamasutdent'

●字符串的输出显示命令disp(zs),输入参数zs可以是数值变量、字符串变量和被界定的字符串,但每一次只能有一个内容,各变量之间用空格分开。

空格也可以用字符命令blanks(n)控制。

>>a='sint';b='exp(t)';c='lnt';t=[0.1:

0.2:

pi/4]';

d='tsintexp(t)lnt';

disp(d),disp([tsin(t)exp(t)log(t)])

●格式化数据显示命令

为了使输出的数据按规定格式(表示方式、小数点位数等)显示,常用命令>>sprintf('Z',S1,S2)

输入参数的第一部分‘Z’由两部分组成(这两部分可以交错混合排列);

控制的第二部分数据显示S1、S2显示形式的“格式”,格式符及其意义如下表,两个格式符空格的大小就是数据显示时的间距。

格式

显示格式

格式符

显示格式

%e

指数格式

%g

自动选择指数

%f

小数格式

%m.nf

数据共占m个字符宽度,显示n位小数

%d

十进制整数格式

\n

换行符

【例2-17】分两行输出自然数e,ln5和最小浮点数eps的符号(即表头)和数值。

>>a=[exp

(1)log(5)eps];

>>b=sprintf('eln5eps\n%9.3f;%f;%e;',a)

2自定义函数求值

可以用数值或符号变量表达式、内联函数命令、自己编写的M-函数文件等多种方法自定义函数、然后进行函数的求值运算。

(1)用数值变量表达式自定义函数。

四则运算中必须用数组符号算法符号,否则称为矩阵函数;表达式使用时“一次性”的,再使用需要重新输入;输入表达式前必须先给数值变量赋值。

(2)用字符变量表达式定义函数

把函数表达式定义成字符串表达式(自定义函数),给字符串赋值以后,通过数值转换命令eval将字符串转换为数值,从而得出函数值。

表达式两端必须加单引号界定,使之被定义为字符串表达式。

(3)用内联函数命令自定义函数

内联函数命令为fun1_1=inline(字符串表达式)

【例2-48】已知

,用三种方法求

数值变量法:

>>A=[32*pi9;653*pi];f1=A.^3+sin(A).^2+exp(-A)

字符变量函数法:

>>fx1='A.^3+sin(A).^2+exp(-A)';

>>A=[32*pi9;653*pi];;fx1_A=eval(fx1)

内联函数法:

>>fx2=inline('A.^3+sin(A).^2+exp(-A)');

>>A=[32*pi9;653*pi];;fx2(A)

2.2.2符号变量

(略)

2.2.3符号矩阵的创建方法

>>Y=sym('[a5*b+1;c-sin(a)b+3]')

2.2.4符号矩阵的运算

符号矩阵的加法、乘法、点乘法:

>>X=sym('[a/b,sin(a);b^4,8]');Y=sym('[3/a,cos(b);b^3,3]');

>>X+Y,X*Y,X.*Y

符号矩阵的求逆运算:

>>inv(X)

对矩阵

各元素进行因式分解:

>>A=sym('[x/(x^2-5*x-6),2*x/(x^2-2*x+1)]');

>>factor(A)

将符号矩阵

的各元素展开:

>>A=sym('[cos(x-y),sin(x+y);exp(x-y),(x-1)^3]');

>>expand(A)

同次幂系数合并:

>>symsxy,collect(x^2*y+x*y-2*x^2-3*x)

求极限:

格式,limit(F,x,a,’right’或’left’),right,left表左右极限,缺省时表极限。

>>symsxma,limit((x^(1/m)-a^(1/m))/(x-a),x,a)

求导数命令,格式:

diff(S,’v’,n),S为函数,v为求导的指定自变量,n为求导阶数。

【例2-29】已知二元函数

,求

默认变量x:

>>symsxy,z=x*y*exp(sin(pi*x*y));diff(z)

指定变量y:

>>diff(z,'y')

泰勒展开式:

>>symsx,taylor(exp(2*x))

2.3基本绘图方法

Matlab提供了丰富的绘图功能,在绘图时,每个图形元素(如坐标轴或图形上的曲线、文字等)都是一独立的对象,被分配给一个句柄(handle),用户只需对该句柄进行操作就可以独立地修改一个图形元素,而不影响图形的其他部分。

2.3.1二维图形函数与调用方法

常用的绘图函数

plot——绘制二维图形,x轴和y轴为线性坐标

semilogx——绘制二维图形,x轴为对数坐标,y轴为线性坐标

semilogy——绘制二维图形,x轴为线性坐标,y轴为对数坐标

loglog——绘制二维图形,x轴和y轴均为对数坐标

plotyy——绘制二维图形,在图形的左右各有一个y轴

polar——绘制极坐标曲线

grid——在图形窗口添加网(gridon)或去掉网(gridoff)

zoom——允许(zoomon)或不允许(zoomoff)对图形进行放大缩小操作

ginput——用鼠标获取图形中点的坐标

patch——填充二维或三维坐标中的二维图形

fill——填充二维坐标中的二维图形

1.基本二维图形

Plot(X,Y,’S’)

X为横坐标,Y为纵坐标,S是修饰曲线的标记符,包含标志拐点的点型符号、曲线的线性符号和色型符号,分布标记数据点位置、曲线类型和曲线色彩。

常用的绘图选项

选项

含义

选项

含义

选项

含义

-

实线

c

青色

D

用菱形标出数据点

--

虚线

w

白色

V

用下三角形标出数据点

:

点线

k

黑色

^

用上三角形标出数据点

-.

点画线

*

用*号标出数据点

<

用左三角形标出数据点

r

红线

.

用点号标出数据点

>

用右三角形标出数据点

g

绿线

o

用圆圈标出数据点

H

用六角形标出数据点

b

蓝线

x

用叉号标出数据点

P

用五角形标出数据点

y

黄线

+

用加号标出数据点

m

洋红

s

用正方形标出数据点

画实线可以在参数S后加写“'linewidth',n”,用以控制线条宽度,n标志线宽,也可在绘图窗中单击快捷按钮,用其菜单进行编辑。

【例2-34】>>y=[3791528];

>>subplot(1,2,1),plot(y,'linewidth',2),grid

又如:

>>x=[339;812;185;791];

>>subplot(1,2,2),plot(x),xlabel('x'),ylabel('y')

2.特殊坐标二维图形

极坐标曲线:

>>theta=0:

0.1:

8*pi;polar(theta,cos(4*theta)+1/4)

对数坐标曲线:

>>x=0:

0.1:

2*pi;y=sin(x);semilogx(x,y);gridon

【例3-27】执行下列程序,比较在不同坐标系下的图形特点。

theta=0:

0.1:

6*pi;

>>r=cos(theta/3)+1/9;

>>subplot(2,2,1),polar(theta,r)

>>subplot(2,2,2),plot(theta,r)

>>subplot(2,3,4),semilogx(theta,r)

>>subplot(2,3,5),semilogy(theta,r)

>>subplot(2,3,6),loglog(theta,r)

双y轴图形:

>>x=0:

0.01:

5;y=exp(x);plotyy(x,y,x,y,'semilogy','plot'),grid

复数数据,plot(x,y),不论参数x、y那个是复数,都将忽略掉虚部数据,只绘制该复数的实部数据,其余用法和绘制与一般实数数据相同。

plot(z)绘图时,以复数的实部为横坐标,虚部为纵坐标绘制实部和虚部的关系曲线。

>>t=0:

0.1:

2*pi;x=sin(t);y=cos(t);z=x+y*i;plot(t,z),grid

>>t=0:

0.1:

2*pi;x=sin(t);y=cos(t);z=x+y*i;plot(z),grid

2.3.2二维图形处理

图形标注

x=(0:

0.1:

2*pi)';

>>y1=2*exp(-0.5*x)*[1,-1];

>>y2=2*exp(-0.5*x).*sin(2*pi*x);

>>x1=(0:

12)/2;

>>y3=2*exp(-0.5*x1).*sin(2*pi*x1);

>>plot(x,y1,'g:

',x,y2,'b--',x1,y3,'rp')

>>title('曲线及其包络线');

>>xlabel('变量x');

>>ylabel('变量y');

>>text(3.2,0.5,'包络线');

>>text(0.5,0.5,'曲线');

>>text(1.4,0.15,'离散数据点');

>>legend('包络线','曲线y','离散数据点')

坐标控制

axisequal——纵、横坐标轴采用等长刻度

axissquae——产生正方形坐标系(默认为矩形)

axisauto——使用默认设置

axisoff——取消坐标轴

axison——显示坐标轴

给坐标轴加网格线

>>x=(0:

0.1:

2*pi)';

>>y1=2*exp(-0.5*x)*[1,-1];

>>y2=2*exp(-0.5*5).*sin(2*pi*x);

>>plot(x,y1,'g');

>>holdon;

>>plot(x,y2,'b--');

>>x1=(0:

12)/2;

>>plot(x1,y3,'rp');

>>gridon;

>>boxoff;

>>holdoff;

2.3.3三维图形的基本函数

建立三维图形的基本函数

函数

功能

函数

功能

plot3

建立三维线条图

surfc

建立带有基本等高线的表面图

mesh

建立网格图

surfl

建立带有指定方向照明的表面图

meshc

建立具有基本等高线的网格图

surface

建立表面图对象的低级函数

meshz

建立具有基准平面的网格图

Fill3

填充三维多边形

surf

建立表面图

2.3.4三维曲线图

【例2-45】绘制三维曲线

>>t=pi:

pi/200:

8*pi;

>>h=figure

(1);

>>set(h,'color',[1,1,1]);

>>subplot(1,2,1),plot3(cos(t),sin(t),t,'b-')

>>subplot(1,2,2),plot3(sin(t),cos(t),t,'.')

2.3.5三维网格图

所谓网格图就是把相邻的数据点连接起来形成网状曲面。

【例2-46】绘制函数

[x,y]=meshgrid(-8:

0.5:

8,-10:

0.5:

10);

>>R=sqrt(x.^2+y.^2)+eps;

>>z=sin(R)./R;

>>mesh(x,y,z)

在以上程序末尾加hidenoff可以显示被遮住部分的效果。

2.3.6三维曲面图

所谓三维曲面图,就是把三维网格图表面的网格围成的小片区域用不同颜色填充所形成的彩色曲面。

【例2-47】绘制标准曲面

>>subplot(2,2,1),sphere(3);

>>title('n=3'),axisequal;

>>subplot(2,2,2),sphere(6);

>>title('n=6'),axisequal;

>>subplot(2,2,3),sphere;

>>title('n=20'),axisequal;

>>subplot(2,2,4),sphere(50);

>>title('n=50'),axisequal;

【例2-49】绘制三维曲面图

[x,y]=meshgrid(-8:

0.5:

8,-10:

0.5:

10);

R=sqrt(x.^2+y.^2)+eps;

z=sin(R)./R;

surf(x,y,z);

colorbar

colorbar命令的作用是在三维曲面图旁边绘制一个可以指示高度的色彩条,使三维曲面的可读性更强。

handingflat去掉各片连接处的线条,平滑当前图形的颜色。

shadinginterp去掉连接线条,在各片之间使用颜色插值,使得片与片之间以及片内部的颜色均过渡。

shadingfaceted默认值,带有连接线条的曲面。

可以将surf换为surfc或surfl。

2.3.7专用图形

1条形图

bar,bar3分别绘制二维和三维竖条形图;barh和bar3h分别绘制二维和三维水平条形图。

四个函数用法相似。

ØBar(x,y):

x是横坐标向量,y是向量或矩阵。

y是向量时,每个元素对应一个竖条;y是m行n列矩阵时,将画出m组竖条,每组包括n个条。

Øbar(y):

横坐标使用默认值1:

m。

Øbar(x,y,width)或bar(y,widh):

用width指定竖条的宽度,默认宽度是0.8.如果宽度大于1,那么条与条之间将重合。

Øbar(…,'grouped'):

产生组合的条形图。

Øbar(…,'stacked'):

产生堆叠的条形图。

Øbar(…,'linespec'):

指定条的颜色。

Øh=bar(…):

返回补片对象的句柄向量。

>>Y=[3,8,2;8,9,2;8,3,3;2,5,6;9,5,1];

>>subplot(1,2,1),bar(Y),title('二维条形图');

>>subplot(1,2,2),bar3(Y),title('三维条形图');

2直方图(统计拼数条形图)

hist在直角坐标系中建立直方图,rose在极坐标系下建立直方图。

Øn=hist(y):

指y按其中数据的大小分为10个相等的段,统计每段中的元素个数并返回给n。

如果y是矩阵,那么按列分段。

Øn=hist(y,m):

m是标量,用来设置分段的个数。

Øn=hist(y,x):

x是向量,用来指定所分的每个数据段的中间值。

Øhist(…):

不带输出参数时,直接绘制直方图。

>>y1=randn(10000,1);

>>y2=rand(10000,1);

>>subplot(1,2,1);hist(y1,20);title('正太分布');

>>subplot(1,2,2);hist(y2,10);title('均匀分布');

3饼形图

pie和pie3分别用于绘制二维和三维饼形图。

Øpie(x):

x可以是向量矩阵。

如果x是向量,则绘制各个元素在向量所有元素之和中所占的比例。

Øpie(x,explode):

参数explode中的元素值非零时,该元素所对应的片和整个图形脱开。

Øpie(…,labels):

labels用于标注饼形图的字符串数组,它必须和x同维。

若没有指定,则Matlab缺省的以该片所占的比例作为标注。

Øh=pie(…):

返回包括补片和文本对象的句柄的向量。

>>cj=[80,95,70,40];

二维饼图>>pie(cj,[0,0,1,0])

三维饼图>>pie3(cj,[0,0,1,0],{'语文28%','数学33%','外语25%','政治14%'});

4离散数据图

函数stem和stem3分别用来绘制二维和三维的离散图形,用法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1