精通与掌握MATLAB 4文档格式.docx

上传人:b****3 文档编号:17877186 上传时间:2022-12-11 格式:DOCX 页数:22 大小:36.22KB
下载 相关 举报
精通与掌握MATLAB 4文档格式.docx_第1页
第1页 / 共22页
精通与掌握MATLAB 4文档格式.docx_第2页
第2页 / 共22页
精通与掌握MATLAB 4文档格式.docx_第3页
第3页 / 共22页
精通与掌握MATLAB 4文档格式.docx_第4页
第4页 / 共22页
精通与掌握MATLAB 4文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

精通与掌握MATLAB 4文档格式.docx

《精通与掌握MATLAB 4文档格式.docx》由会员分享,可在线阅读,更多相关《精通与掌握MATLAB 4文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

精通与掌握MATLAB 4文档格式.docx

x(find(x>

0.5))

0.95010.60680.8913

x([12344321])

0.95010.23110.60680.48600.48600.60680.2311

Column8

0.9501

【例2.2-2】子数组的赋值(Assign)。

x(3)=0

0.95010.231100.48600.8913

x([14])=[11]

1.00000.231101.00000.8913

.3二维数组的创建

.3.1直接输入法

【例2.3-1】在MATLAB环境下,用下面三条指令创建二维数组C。

a=2.7358;

b=33/79;

C=[1,2*a+i*b,b*sqrt(a);

sin(pi/4),a+5*b,3.5+i]

C=

1.00005.4716+0.4177i0.6909

0.70714.82443.5000+1.0000i

【例2.3-2】复数数组的另一种输入方式。

M_r=[1,2,3;

4,5,6],M_i=[11,12,13;

14,15,16]

CN=M_r+i*M_i

M_r=

123

456

M_i=

111213

141516

CN=

1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i

4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i

.3.2利用M文件创建和保存数组

【例2.3-3】创建和保存数组AM的MyMatrix.m文件。

%MyMatrix.mCreationandpreservationofmatrixAM

AM=[101,102,103,104,105,106,107,108,109;

...

201,202,203,204,205,206,207,208,209;

301,302,303,304,305,306,307,308,309];

.4二维数组元素的标识

.4.1“全下标”标识

.4.2“单下标”标识

.4.3“逻辑1”标识

【例2.4-1】找出数组

中所有绝对值大于3的元素。

A=zeros(2,5);

A(:

)=-4:

5

L=abs(A)>

3

islogical(L)

X=A(L)

A=

-4-2024

-3-1135

L=

10001

00001

1

X=

-4

4

5

.5二维数组的子数组寻访和赋值

【例2.5-1】不同赋值方式示例。

A=zeros(2,4)

0000

0000

)=1:

8

1357

2468

s=[235];

A(s)

Sa=[102030]'

A(s)=Sa

235

Sa=

10

20

30

120307

10468

[23])=ones

(2)

1117

10118

.6执行数组运算的常用函数

.6.1函数数组运算规则的定义:

.6.2执行数组运算的常用函数

.7数组运算和矩阵运算

.7.1数组运算和矩阵运算指令对照汇总

【例2.7-1】两种不同转置的比较

clear;

A=zeros(2,3);

6;

A=A*(1+i)

A_A=A.'

A_M=A'

1.0000+1.0000i3.0000+3.0000i5.0000+5.0000i

2.0000+2.0000i4.0000+4.0000i6.0000+6.0000i

A_A=

1.0000+1.0000i2.0000+2.0000i

3.0000+3.0000i4.0000+4.0000i

5.0000+5.0000i6.0000+6.0000i

A_M=

1.0000-1.0000i2.0000-2.0000i

3.0000-3.0000i4.0000-4.0000i

5.0000-5.0000i6.0000-6.0000i

.8标准数组生成函数和数组操作函数

.8.1标准数组生成函数

【例2.8-1】标准数组产生的演示。

ones(1,2)

11

randn('

0)

randn(2,3)

-0.43260.1253-1.1465

-1.66560.28771.1909

D=eye(3)

D=

100

010

001

diag(D)

1

diag(diag(D))

.8.2数组操作函数

【例2.8-2】reshape的使用演示。

a=-4:

4

A=reshape(a,3,3)

a=

-4-3-2-101234

-4-12

-303

-214

【例2.8-3】数组转置、对称交换和旋转操作后果的对照比较。

A

A.'

-4-3-2

-101

234

flipud(A)

-214

-4-12

fliplr(A)

2-1-4

30-3

41-2

【例2.8-4】演示Kronecker乘法不具备“可交换规律”。

B=eye

(2)

C=reshape(1:

4,2,2)

B=

10

01

13

24

kron(B,C)

1300

2400

0013

0024

kron(C,B)

1030

0103

2040

0204

.9数组构作技法综合

【例2.9-1】数组的扩展。

A=reshape(1:

9,3,3)

147

258

369

A(5,5)=111

14700

25800

36900

00000

0000111

6)=222

14700222

25800222

36900222

00000222

0000111222

AA=A(:

[1:

6,1:

6])

AA=

1470022214700222

2580022225800222

3690022236900222

0000022200000222

00001112220000111222

B=ones(2,6)

111111

111111

AB_r=[A;

B]

AB_r=

0000111222

AB_c=[A,B(:

1:

5)'

]

AB_c=

1470022211

2580022211

3690022211

0000022211

000011122211

【例2.9-2】单下标寻访和reshape指令演示。

clear

16,2,8)

13579111315

246810121416

reshape(A,4,4)

15913

261014

371115

481216

s=[13689111416];

A(s)=0

0057001315

2400101200

【例2.9-3】逻辑函数的运用示例。

1),R=randn(3,6)

R=

0.86440.8735-1.10270.1684-0.5523-0.6149

0.0942-0.43800.3962-1.9654-0.8197-0.2546

-0.8519-0.4297-0.9649-0.74431.1091-0.2698

L=abs(R)<

0.5|abs(R)>

1.5

000100

111101

010001

R(L)=0

0.86440.8735-1.10270-0.5523-0.6149

0000-0.81970

-0.85190-0.9649-0.74431.10910

s=(find(R==0))'

s=

256810111718

R(s)=111

0.86440.8735-1.1027111.0000-0.5523-0.6149

111.0000111.0000111.0000111.0000-0.8197111.0000

-0.8519111.0000-0.9649-0.74431.1091111.0000

[ii,jj]=find(R==111);

disp(ii'

),disp(jj'

22321223

12234466

.10高维数组

.10.1高维数组的创建

【例2.10-1】“全下标”元素赋值方式创建高维数组演示。

A(2,2,2)=1

:

1)=

00

2)=

11

B(2,5,:

3

B(:

00002

3)=

00003

【例2.10-2】低维数组合成高维数组。

clear,A=ones(2,3);

2)=ones(2,3)*2;

3)=ones(2,3)*3

111

222

333

333

【例2.10-3】由函数ones,zeros,rand,randn直接创建标准高维数组的示例。

1111),rand(2,4,3)

ans(:

0.62780.97480.25850.6949

0.25440.23050.03130.1223

0.48890.38980.84890.0587

0.91380.30710.42600.6331

0.28020.20730.74380.2714

0.40510.20330.45660.2421

【例2.10-4】借助cat,repmat,reshape等函数构作高维数组。

cat(3,ones(2,3),ones(2,3)*2,ones(2,3)*3)

repmat(ones(2,3),[1,1,3])

111

reshape(1:

12,2,2,3)

24

57

68

911

1012

.10.2高维数组的标识

【例2.10-5】维数、大小和长度

24,2,3,4);

dim_A=ndims(A)

size_A=size(A)

L_A=length(A)

dim_A=

3

size_A=

234

L_A=

4

.10.3高维数组构作和操作函数汇总

【例2.10-6】“孤维”的撤消和降维。

18,2,3,3)

135

246

7911

81012

131517

141618

B=cat(4,A(:

1),A(:

2),A(:

3))

1,1)=

1,2)=

1,3)=

size(B)

2313

C=squeeze(B)

C(:

size(C)

233

【例2.10-7】赋“空阵”值操作。

2:

3,:

)=[]

B=A;

2

7

8

13

14

size(A)

213

A_1=squeeze(A)

A_1=

1713

2814

size(B)

1,:

)=[]

Emptyarray:

2-by-0-by-3

.11“非数”和“空”数组

.11.1非数NaN

【例2.11-1】非数的产生和性质演示。

a=0/0,b=0*log(0),c=inf-inf

Warning:

Dividebyzero.

NaN

Logofzero.

b=

c=

NaN

0*a,sin(a)

class(a)

isnan(a)

double

【例2.11-2】非数元素的寻访

0)

R=rand(2,5);

R(1,5)=NaN;

R(2,3)=NaN

0.95010.60680.89130.4565NaN

0.23110.4860NaN0.01850.4447

isnan(R)

00100

Linear_index=find(isnan(R))

[r_index,c_index]=ind2sub(size(R),Linear_index);

disp('

r_indexc_index'

),disp([r_indexc_index])

Linear_index=

6

9

r_indexc_index

23

15

.11.2“空”数组

【例2.11-3】关于“空”数组的算例。

a=[],b=ones(2,0),c=zeros(2,0),d=eye(2,0),f=rand(2,3,0,4)

[]

Emptymatrix:

2-by-0

d=

f=

2-by-3-by-0-by-4

class(a)

isnumeric(a)

isempty(a)

whicha

ndims(a)

size(a)

aisavariable.

00

A=reshape(-4:

5,2,5)

-3-1135

[2,4])=[]

-404

-315

.12关系操作和逻辑操作

.12.1关系操作

【例2.12-1】关系运算示例。

A=1:

9,B=10-A,r0=(A<

4),r1=(A==B)

123456789

987654321

r0=

111000000

r1=

000010000

【例2.12-2】关系运算运用之一:

求近似极限,修补图形缺口。

(见图2.12-1)

t=-2*pi:

pi/10:

2*pi;

y=sin(t)./t;

tt=t+(t==0)*eps;

yy=sin(tt)./tt;

subplot(1,2,1),plot(t,y),axis([-7,7,-0.5,1.2]),

xlabel('

t'

残缺图形'

subplot(1,2,2),plot(tt,yy),axis([-7,7,-0.5,1.2])

yy'

正确图形'

图2.12-1极限处理前后的图形对照

.12.2逻辑操作

【例2.12-3】逻辑操作示例。

9,L1=~(A>

5)

L2=(A>

3)&

(A<

7)

L1=

111110000

L2=

000111000

【例2.12-4】逻辑操作应用之一:

逐段解析函数的计算和表现。

本例演示削顶整流正弦半波的计算和图形绘制。

(见图2.12-2)

t=linspace(0,3*pi,500);

y=sin(t);

z1=((t<

pi)|(t>

2*pi)).*y;

w=(t>

pi/3&

t<

2*pi/3)+(t>

7*pi/3&

8*pi/3);

w_n=~w;

z2=w*sin(pi/3)+w_n.*z1;

subplot(1,3,1),plot(t,y,'

:

r'

subplot(1,3,2),plot(t,z1,'

),axis([010-11])

subplot(1,3,3),plot(t,z2,'

-b'

),axis([010-11])

图2.12-2逐段解析函数的产生

.12.3关系、逻辑函数

习题2

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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