第二章基本语法.docx

上传人:b****8 文档编号:12160061 上传时间:2023-06-04 格式:DOCX 页数:41 大小:1,002.12KB
下载 相关 举报
第二章基本语法.docx_第1页
第1页 / 共41页
第二章基本语法.docx_第2页
第2页 / 共41页
第二章基本语法.docx_第3页
第3页 / 共41页
第二章基本语法.docx_第4页
第4页 / 共41页
第二章基本语法.docx_第5页
第5页 / 共41页
第二章基本语法.docx_第6页
第6页 / 共41页
第二章基本语法.docx_第7页
第7页 / 共41页
第二章基本语法.docx_第8页
第8页 / 共41页
第二章基本语法.docx_第9页
第9页 / 共41页
第二章基本语法.docx_第10页
第10页 / 共41页
第二章基本语法.docx_第11页
第11页 / 共41页
第二章基本语法.docx_第12页
第12页 / 共41页
第二章基本语法.docx_第13页
第13页 / 共41页
第二章基本语法.docx_第14页
第14页 / 共41页
第二章基本语法.docx_第15页
第15页 / 共41页
第二章基本语法.docx_第16页
第16页 / 共41页
第二章基本语法.docx_第17页
第17页 / 共41页
第二章基本语法.docx_第18页
第18页 / 共41页
第二章基本语法.docx_第19页
第19页 / 共41页
第二章基本语法.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第二章基本语法.docx

《第二章基本语法.docx》由会员分享,可在线阅读,更多相关《第二章基本语法.docx(41页珍藏版)》请在冰点文库上搜索。

第二章基本语法.docx

第二章基本语法

第二章基本语法

2.1.2

矩阵及其元素的赋值

赋值语句的一般形式变量=表达式(或数)

(1)元素为数

a=[123;456;789]

a=

123

456

789

(1)元素为表达式

x=[-1.3sqrt(3)(1+2+3)/5*4]

x=

-1.30001.73214.8000

(3)向量,数组中的元素用下标表示“(。

)”

>>x(5)=abs(x

(1))

x=

-1.30001.73214.800001.3000

(4)注意如果赋值元素的下标超过了原来矩阵的大小,矩阵的行列会自动扩展

a(4,3)=5.6

a=

1.00002.00003.0000

4.00005.00006.0000

7.00008.00009.0000

005.6000

(5)全行赋值

>>a(5,:

)=[543]

a=

1.00002.00003.0000

4.00005.00006.0000

7.00008.00009.0000

005.6000

5.00004.00003.0000

(6)把a的第2,4行及1,3列交点上的元素取出,构成一个新的矩阵b

>>b=a([2,4],[1,3])

b=

4.00006.0000

05.6000

(7)抽去a中的第2,4,5行

>>a([2,4,5],:

)=[]

a=

123

789

2.1.3

复数的赋值

1.对复数矩阵有两种赋值方法

(1)将元素逐个赋予复数

>>z=[1+2i3+4i;5+6i7+8i]

z=

1.0000+2.0000i3.0000+4.0000i

5.0000+6.0000i7.0000+8.0000i

(2)将实部虚部分开赋值

>>z=[1,3;5,7]+[2,4;6,8]*i

z=

1.0000+2.0000i3.0000+4.0000i

5.0000+6.0000i7.0000+8.0000i

2.若i和j在以前已经使用过则可以使用以下语句

Cleari,j

3.MATLAB中所有的运算符和函数对复数都有效

4.复数的共轭转置,共轭,转置

w=z',u=conj(z),v=conj(z)'

w=

1.0000-2.0000i5.0000-6.0000i

3.0000-4.0000i7.0000-8.0000i

u=

1.0000-2.0000i3.0000-4.0000i

5.0000-6.0000i7.0000-8.0000i

v=

1.0000+2.0000i5.0000+6.0000i

3.0000+4.0000i7.0000+8.0000i

5.Inf无穷大,NaN(notanumber)非数字

>>1/0

Warning:

Dividebyzero.

ans=

Inf

>>0/0

Warning:

Dividebyzero.

ans=

NaN

2.1.5基本赋值矩阵

(1)基本矩阵

>>f1=ones(3,2),f2=zeros(2,3),f3=magic(3),f4=eye

(2)

%其中magic矩阵每列及对角线上的元素之和等于(n^3+n)/2

f1=

11

11

11

f2=

000

000

f3=

816

357

492

f4=

10

01

(2)线性分割函数linespace(a,b,n)在a,b之间均匀的产生n个点值,构成n维向量。

>>f5=linspace(0,1,5)

f5=

00.25000.50000.75001.0000

(3)有小矩阵构成大矩阵

>>fb1=[f1,f3;f4,f2]

fb1=

11816

11357

11492

10000

01000

2.2矩阵的初等运算

(1)检查矩阵的阶数

>>[m,n]=size(fb2)

m=

6

n=

5

(2)数组的长度

>>X=[-101];

>>Y=X-1

Y=

-2-10

>>l=length(X)

l=

3

矩阵的乘法:

C(i,j)=A(i,1)B(1,j)+A(i,2)B(2,j)+A(i,3)B(3,j)+A(i,4)B(4,j)+…..

>>A=[123;456],B=[240;135],D=[147;852;360]

A=

123

456

B=

240

135

D=

147

852

360

>>A*B

?

?

?

Errorusing==>mtimes

Innermatrixdimensionsmustagree.

>>A'*B

ans=

61620

92325

123030

>>A*B'

ans=

1022

2849

>>D\A

?

?

?

Errorusing==>mldivide

Matrixdimensionsmustagree.

>>D\A'

ans=

-0.03700

0.51851.0000

-0.14810

>>A/D

ans=

0.40740.07410.0000

0.74070.40740.0000

2.2.3矩阵的乘方和幂次函数

>>D=[147;852;360]

D=

147

852

360

>>s=[12;34]

s=

12

34

>>D^2

ans=

546615

546966

514233

>>2^D

ans=

1.0e+003*

1.7211-0.0000i1.9720+0.0000i1.2886+0.0000i

2.2657-0.0000i2.5958+0.0000i1.6960+0.0000i

1.5113+0.0000i1.7316+0.0000i1.1313+0.0000i

>>D^s

?

?

?

Errorusing==>mpower

Atleastoneoperandmustbescalar.

>>2.^D

ans=

216128

256324

8641

>>u1=sqrtm(s)

u1=

0.5537+0.4644i0.8070-0.2124i

1.2104-0.3186i1.7641+0.1458i

>>u2=sqrt(s)

u2=

1.00001.4142

1.73212.0000

>>v1=expm(s)

v1=

51.969074.7366

112.1048164.0738

>>v2=exp(s)

v2=

2.71837.3891

20.085554.5982

>>logm(s)

Warning:

PrincipalmatrixlogarithmisnotdefinedforAwith

nonpositiverealeigenvalues.Anon-principalmatrix

logarithmisreturned.

>Infunmat153

Inlogmat27

ans=

-0.3504+2.3911i0.9294-1.0938i

1.3940-1.6406i1.0436+0.7505i

>>logm(D)

ans=

1.2447-0.91702.8255

1.60442.5760-1.9132

-0.75391.13721.6724

>>log(D)

Warning:

Logofzero.

ans=

01.38631.9459

2.07941.60940.6931

1.09861.7918-Inf

2.2.4矩阵结构形式的提取和变换

>>A=[8160;3571;4922]

A=

8160

3571

4922

>>B=fliplr(A)矩阵左右反转

B=

0618

1753

2294

>>B=flipud(r)

?

?

?

Undefinedfunctionorvariable'r'.

>>B=flipud(A)矩阵上下翻转

B=

4922

3571

8160

>>B=reshape(A)

?

?

?

Errorusing==>reshape

Notenoughinputarguments.

>>B=reshape(A,2,6)阶数重组

B=

845621

319702

>>B=bot90(A)

?

?

?

Undefinedcommand/function'bot90'.

>>B=rot90(A)矩阵逆时针旋转90度

B=

012

672

159

834

>>B=diag(A)提取对角阵

B=

8

5

2

>>B=tril(A)取矩阵的左下角部分

B=

8000

3500

4920

>>B=triu(A)取矩阵的右下角部分

B=

8160

0571

0022

>>B=A(:

)将元素按列取出排成一列

B=

8

3

4

1

5

9

6

7

2

0

1

2

2.3元素群运算

MATLAB的所有运算都是针对矩阵来讲的,而如果要研究矩阵中的元素间的运算则要用到元素群的概念。

2.3.1数组及其赋值

1.等间距数组赋值的方法

(1)t=[初值:

增量:

终值]

>>t=[0:

0.2:

1]

t=

00.20000.40000.60000.80001.0000

>>t=[10:

-3:

-5]

t=

10741-2-5

当增量为1时,增量值可以略去

>>k=1:

6

k=

123456

(2)用linspace函数

Linspace(初值.终值.点数)

>>theta=linspace(0,2*pi,9)

theta=

00.78541.57082.35623.14163.92704.71245.49786.2832

>>theta=logspace(0,2*pi,9)

theta=

1.0e+006*

0.00000.00000.00000.00020.00140.00850.05160.31461.9195

2.3.2元素群的运算

为了与矩阵作为整体运算符号相区别,要在运算符号前加“.”

>>X=[123],Y=[456]

X=

123

 

Y=

456

>>Z=X.*Y

Z=

41018

>>Z=X./Y

Z=

0.25000.40000.5000

>>Z=X.^Y

Z=

132729

>>Z=X.^2

Z=

149

>>Z=2.^[XY]

Z=

248163264

2.3.3元素群函数

分为三角函数,指数函数,复数,取整函数三部分

(1)>>X=[0:

0.1:

pi/4]';[X,sin(X),cos(X),tan(X)]

ans=

001.00000

0.10000.09980.99500.1003

0.20000.19870.98010.2027

0.30000.29550.95530.3093

0.40000.38940.92110.4228

0.50000.47940.87760.5463

0.60000.56460.82530.6841

0.70000.64420.76480.8423

(2)Disp命令为显示,一般要带引号,原样输出

>>disp([X,sin(X),cos(X),tan(X)])

001.00000

0.10000.09980.99500.1003

0.20000.19870.98010.2027

0.30000.29550.95530.3093

0.40000.38940.92110.4228

0.50000.47940.87760.5463

0.60000.56460.82530.6841

0.70000.64420.76480.8423

>>disp('MATLAB赖旬阳')

MATLAB赖旬阳

 

2.4逻辑判断及流程控制

2.4.1关系运算

关系运算的结果只有两种结果0,1

>>a=2+2==4

a=

1

>>A=magic(6)

A=

3516261924

3327212325

3192222720

82833171015

30534121416

43629131811

>>p=(rem(A,3)==0)

1.Rem函数表示a整除b,求余数

p=

001001

100100

010010

001001

100100

010010

2.找出不为0的序号

>>lp=find(p)'

lp=

259121316202327303134

3.>>any(p)any()只要有一个为1则结果为1,按列运算

ans=

111111

4.>>all(p)all()只要全部为1则结果为1,按列运算

ans=

000000

2.4.3流程控制语句

MATLAB有4种控制语句

1.if语句

(1)if(表达式)语句组A,end

(2)if(表达式1)语句组A,else语句组B,end

(3)if(表达式1)语句组A,elseif(表达式2),语句组B,else语句组C,end

>>%输入数n,判断其奇偶性

>>n=input('n='),ifrem(n,2)==0A='even',elseA='odd',end

n=12345

n=

12345

A=

Odd

>>%输入数n,判断其奇偶性

n=input('n='),ifrem(n,2)==0A='even',elseA='odd',end

n=

n=

[]

A=

Odd

2.while语句

while(表达式)语句组A,end

>>x=1;whilex~=inf,x1=x;x=2*x;end,x1MATLAB中的最大数

x1=

8.9885e+307

>>y=1;while1+y>1,y1=y;y=y/2;end,y1MATLAB中的最小数

y1=

2.2204e-016

3.for语句

Fork=初值:

增量:

终值语句组A,end

>>forx=0:

0.1:

pi/4disp([x,sin(x),cos(x),tan(x)]),end

0010

0.10000.09980.99500.1003

0.20000.19870.98010.2027

0.30000.29550.95530.3093

0.40000.38940.92110.4228

0.50000.47940.87760.5463

0.60000.56460.82530.6841

>>n=input('n='),formatrat;fori=1:

n,forj=1:

n,h(i,j)=1/(i+j-1);end,end,h

n=5

n=

5

 

h=

11/21/31/41/5

1/21/31/41/51/6

1/31/41/51/61/7

1/41/51/61/71/8

1/51/61/71/81/9

4.switch语句

多分支语句,switch表达式(标量或字符串)

Case值1语句组A

Case值2语句组B

Otherwise

语句组N

End

2.5基本绘图方法

2.5.1直角坐标中的两维曲线

(1)plot(y):

输入一个数组的情况

>>y=5*(rand(1,10)-.5)

y=

2.2506-1.34430.5342-0.07011.95651.3105-0.2177-2.40751.6070-0.2765

>>plot(y)

>>title('myfirstplot')

xlabel('x'),ylabel('y')

grid

3.plot(x,y)输入两个数组的情况

>>t=0:

0.5:

4*pi

t=

Columns1through12

00.50001.00001.50002.00002.50003.00003.50004.00004.50005.00005.5000

Columns13through24

6.00006.50007.00007.50008.00008.50009.00009.500010.000010.500011.000011.5000

Columns25through26

12.000012.5000

>>y=exp(-0.1*t).*sin(t),plot(t,y)

y=exp(-0.1*t).*sin(t),plot(t,y,'r-.')

2.5.3多条曲线的画法

1.用plot(t,[y1,y2,…])命令

不便于用户自己设置线型和颜色

y1=exp(-0.1*t).*sin(t+1),plot(t,y1)

plot(t,[y;y1])

2.用hold命令

在画完前一张图后用hold命令保持住,在画下一条

4.在plot后使用多个输入变量

Plot(x1,y1,x2,y2,…,xn,yn)

>>t2=0:

.2:

2*pi;y2=exp(-0.5*t2).*sin(5*t2+1);plot(t2,y2)

>>plot(t,y,'+g',t2,y2,':

r');title('线型,点型,颜色');xlabel('时间');ylabel('Y')

4用plotyy命令

>>y3=5*y2;plotyy(t,y,t2,y3)

>>grid

>>gtext('t,t2'),gtext('y'),gtext('y3')

Gtext命令用鼠标拖动来确定标注文字的位置,用起来比较方便

2.5.4屏幕控制和其他二维绘图

1.图形屏幕控制命令

通用图形函数(graphics)(h)分为以下几部分

图形窗的控制,轴系的控制,图形对象,图形句柄操作,工具,杂项

Figure

Clf清除当前图形窗中的内容

Hold保持当前的内容,holdoff

Close关闭当前图形窗

Closeall关闭所有图形窗

Subplot(n,m,p)命令,将图形窗口分成n×m个子图,在第p个子图绘制图形

2.其他二维绘图命令

Stem绘制脉冲

Stairs绘制阶梯图

Bar绘制条形图

Errorbar绘制误差条形图

Hist会直方图

Fill(t,y,‘颜色标识符’)

subplot(2,2,1),stem(t,y)

title('stem(t,y)'),pause

subplot(2,2,2),stairs(t,y)

title('stairs(t,y)'),pause

subplot(2,2,3),bar(t,y)

title('bar(t,y)'),pause

subplot(2,2,34),fill(t,y,'r')

subplot(2,2,4),fill(t,y,'r')

title('fill(t,y,''r'')')

二维图形函数库(graph2d)(p)

基本X,Y图形,坐标控制,图形注释,

3.虚数的绘图

MATLAB通常将实部作为X坐标,虚部作为Y坐标,即相当于plot(real(z),imag(z))

Polar(theta,rth)极坐标绘图

Semilogx半对数

>>figure

(2)

>>z=exp((-0.1+i)*t);subplot(2,2,1);plot(z),pause

>>title('复数绘图plot(z)')

>>subplot(2,2,2);plot(t,z),pause

Warning:

ImaginarypartsofcomplexXand/orYargumentsignored.

>>title('复数绘图plot(t,z)')

>>subplot(2,2,3);polar(angle(z),abs(z))

>>title('polar(angle(z),abs(z))')

>>subplot(2,2,4),semilogx(t,z)

Warning:

ImaginarypartsofcomplexXand/orYargumentsignored.

>>title('semilogx(t,z)')

5.坐标比例和尺寸的设置-------axis命令

Axis(V)

V=[xmin,xmax,ymin,ymax]

Axis(‘square’)

Axis(‘equal’)横纵坐标比例尺相同

2.5.5三维曲线和曲面

1.空间曲线绘制---plot3

Plot3(x,y,z,’s’),s为线型颜色符号

>>z=0:

0.1:

4*pi;x=cos(z);y=sin(z);plot3(x,y,z)

2.空间曲面的绘制

函数mesh和surf用来绘制三维曲面

Meshc三维曲面与等高线组合图

Meshz带帘的三维曲面

>>x

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

当前位置:首页 > 农林牧渔

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2