MATLAB实验.docx

上传人:b****4 文档编号:24475988 上传时间:2023-05-27 格式:DOCX 页数:66 大小:728.58KB
下载 相关 举报
MATLAB实验.docx_第1页
第1页 / 共66页
MATLAB实验.docx_第2页
第2页 / 共66页
MATLAB实验.docx_第3页
第3页 / 共66页
MATLAB实验.docx_第4页
第4页 / 共66页
MATLAB实验.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

MATLAB实验.docx

《MATLAB实验.docx》由会员分享,可在线阅读,更多相关《MATLAB实验.docx(66页珍藏版)》请在冰豆网上搜索。

MATLAB实验.docx

MATLAB实验

 

实验报告本

课程名称:

MATLAB实验

指导老师:

班级:

电信

姓名:

学号:

 

~学年度第学期

 

广东石油化工学院计算机与电子信息学院

 

目录

 

实验一、基础准备及入门1-5页

实验二、数值数组及其运算6-17页

实验三、字符串、元胞和构架数组17-25页

实验四、符号计算25-34页

实验五、数据和函数的可视化35-43页

 

实验一基础准备及入门

实验目的:

1、讲述MATLAB正常运行所必须具备的基础条件;

2、是简明系统地介绍高度集成的Desktop操作桌面的功能和使用方法。

实验内容:

.1.1复数和复数矩阵

【例1.3.3-1】复数

表达,及计算

(1)z1=3+4i

z1=3.0000+4.0000i

(2)z2=1+2*i

z3=2*exp(i*pi/6)

z=z1*z2/z3

z2=1.0000+2.0000i

z3=1.7321+1.0000i

z=0.3349+5.5801i

【例1.3.3-2】复数矩阵的生成及运算

A=[1,3;2,4]-[5,8;6,9]*i

B=[1+5i,2+6i;3+8*i,4+9*i]

C=A*B

A=

1.0000-5.0000i3.0000-8.0000i

2.0000-6.0000i4.0000-9.0000i

B=

1.0000+5.0000i2.0000+6.0000i

3.0000+8.0000i4.0000+9.0000i

C=

1.0e+002*

0.99001.1600-0.0900i

1.1600+0.0900i1.3700

【例1.3.3-3】求上例复数矩阵C的实部、虚部、模和相角。

C_real=real(C)

C_imag=imag(C)

C_magnitude=abs(C)

C_phase=angle(C)*180/pi%以度为单位计算相角

C_real=

99116

116137

C_imag=

0-9

90

C_magnitude=

99.0000116.3486

116.3486137.0000

C_phase=

0-4.4365

4.43650

【例1.3.3-4】用MATLAB计算

能得到–2吗?

(1)a=-8;

r=a^(1/3)

r=1.0000+1.7321i

(2)m=[0,1,2];

R=abs(a)^(1/3);

Theta=(angle(a)+2*pi*m)/3;

rrr=R*exp(i*Theta)

rrr=1.0000+1.7321i-2.0000+0.0000i1.0000-1.7321i

(3)

t=0:

pi/20:

2*pi;x=R*sin(t);y=R*cos(t);

plot(x,y,'b:

'),grid

holdon

plot(rrr

(1),'.','MarkerSize',50,'Color','r')

plot(rrr([2,3]),'o','MarkerSize',15,'Color','b')

axis([-3,3,-3,3]),axissquare

holdoff

图1.3-2

.1.2计算结果的图形表示

【例1.3.4-1】画出衰减振荡曲线

及其它的包络线

的取值范围是

(图1.3-3)

t=0:

pi/50:

4*pi;

y0=exp(-t/3);

y=exp(-t/3).*sin(3*t);

plot(t,y,'-r',t,y0,':

b',t,-y0,':

b')

grid

图1.3-3

【例1.3.4-2】画出

所表示的三维曲面(图1.3-4)。

的取值范围是

clear;x=-8:

0.5:

8;

y=x';

X=ones(size(y))*x;

Y=y*ones(size(x));

R=sqrt(X.^2+Y.^2)+eps;%<5>

Z=sin(R)./R;%<6>

surf(X,Y,Z);%

colormap(cool)%

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

图1.3-4

.1.3内存变量查阅、删除的指令操作法

【例1.7.2-1】在指令窗中运用who,whos查阅MATLAB内存变量。

who

Yourvariablesare:

AC_magnitudeSmz1

BC_phaseThetarz2

CC_realarrrz3

C_imagRansz

whos

NameSizeBytesClassAttributes

A2x264doublecomplex

B2x264doublecomplex

C2x264doublecomplex

C_imag2x232double

C_magnitude2x232double

C_phase2x232double

C_real2x232double

R1x18double

S1x18double

Theta1x324double

a1x18double

ans1x18double

m1x324double

r1x116doublecomplex

rrr1x348doublecomplex

【例1.7.2-2】在指令窗中运用clear指令可以删除内存中的变量。

clearBnumber

who

Yourvariablesare:

AC_magnitudeSmz1

BC_phaseThetarz2

CC_realarrrz3

C_imagRansz

【例1.7.2-3】通过“工作空间浏览器”的运作,采用图形显示内存变量Z。

图1.7-3

.1.4数据文件的存取

【例1.7.4-1】数据的存取。

(假定内存中已经存在变量X,Y,Z)

(1)

mkdir('c:

\','my_dir');

cdc:

\my_dir

savesafXYZ

dir

>>mkdir('c:

\','my_dir');

cdc:

\my_dir

savesafXYZ

dir

...saf.mat

(2)

clear

loadsafZ

who

>>clear

loadsafZ

who

Yourvariablesare:

Z

实验心得:

通过本次实验,了解了MATLAB的正确安装方法和MATLAB环境的启动,指令窗是MATLAB最重要的操作界面,并初步认识了历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分类目录窗、M文件编辑/调试器、及帮助导航/浏览器。

实验二数值数组及其运算

实验目的:

1、了解数值数组(NumericArray)和数组运算(ArrayOperations)

2、一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用标准数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数NaN、“空”数组概念和应用;关系和逻辑操作。

实验内容:

引导

【例2.1-1】绘制函数

时的曲线。

x=0:

0.1:

1

y=x.*exp(-x)

plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')

图2.1-1

>>x=0:

0.1:

1

x=

Columns1through6

00.10000.20000.30000.40000.5000

Columns7through11

0.60000.70000.80000.90001.0000

>>y=x.*exp(-x)

y=

Columns1through6

00.09050.16370.22220.26810.3033

Columns7through11

0.32930.34760.35950.36590.3679

>>plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')

一维数组的创建和寻访

一维数组的子数组寻访和赋值

【例2.2.2-1】子数组的寻访(Address)。

rand('state',0)

x=rand(1,5)

x(3)

x([125])

x(1:

3)

x(3:

end)%

x(3:

-1:

1)%

x(find(x>0.5))

x([12344321])

>>rand('state',0)

>>x=rand(1,5)

x=

0.95010.23110.60680.48600.8913

>>x(3)

ans=

0.6068

>>x([125])

ans=

0.95010.23110.8913

>>x(1:

3)

ans=

0.95010.23110.6068

>>x(3:

end)

ans=

0.60680.48600.8913

>>x(3:

-1:

1)

ans=

0.60680.23110.9501

>>x(find(x>0.5))

ans=

0.95010.60680.8913

>>x([12344321])

ans=

Columns1through5

0.95010.23110.60680.48600.4860

Columns6through8

0.60680.23110.9501

二维数组的创建

直接输入法

【例2.3.1-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]

>>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.1-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=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16]

M_r=

123

456

M_i=

111213

141516

>>CN=M_r+i*M_i

CN=

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

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

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

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

(1)

%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];

二维数组元素的标识

“逻辑1”标识

【例2.4.3-1】找出数组

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

A=zeros(2,5);

A(:

)=-4:

5

L=abs(A)>3

islogical(L)

X=A(L)

>>A=zeros(2,5);A(:

)=-4:

5

A=

-4-2024

-3-1135

>>L=abs(A)>3

L=

10001

00001

>>islogical(L)

ans=

1

>>X=A(L)

X=

-4

4

5

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

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

A=zeros(2,4)

A(:

)=1:

8

s=[235];

A(s)

Sa=[102030]'

A(s)=Sa

A(:

[23])=ones

(2)

>>A=zeros(2,4)

A=

0000

0000

>>A(:

)=1:

8

A=

1357

2468

>>s=[235];A(s)

ans=

235

>>Sa=[102030]'

Sa=

10

20

30

>>A(s)=Sa

A=

120307

10468

>>A(:

[23])=ones

(2)

A=

1117

10118

执行数组运算的常用函数

执行数组运算的常用函数

【例2.6.2-1】演示pow2的数组运算性质。

A=[1:

4;5:

8]

pow2(A)

>>A=[1:

4;5:

8]

A=

1234

5678

>>pow2(A)

ans=

24816

3264128256

数组运算和矩阵运算

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

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

clear;A=zeros(2,3);

A(:

)=1:

6;

A=A*(1+i)

A_A=A.'

A_M=A'

>>clear;A=zeros(2,3);A(:

)=1:

6;A=A*(1+i)

A=

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

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

>>A_A=A.'

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=A'

A_M=

1.0000-1.0000i2.0000-2.0000i

3.0000-3.0000i4.0000-4.0000i

5.0-5.0000i6.0000-6.0000i

2.9标准数组生成函数和数组操作函数

2.9.2标准数组生成函数

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

ones(1,2)

ones

(2)

randn('state',0)

randn(2,3)

D=eye(3)

diag(D)

diag(diag(D))

repmat(D,1,3)

>>ones(1,2)

ans=

11

>>ones

(2)

ans=

11

11

>>randn('state',0)

>>randn(2,3)

ans=

-0.43260.1253-1.1465

-1.66560.28771.1909

>>D=eye(3)

D=

100

010

001

>>diag(diag(D))

ans=

100

010

001

>>diag(D)

ans=

1

1

1

>>repmat(D,1,3)

ans=

100100100

010010010

001001001

数组操作函数

【例2.9.2-1】diag与reshape的使用演示。

a=-4:

4

A=reshape(a,3,3)

a1=diag(A,1)

A1=diag(a1,-1)

>>a=-4:

4

a=

-4-3-2-101234

>>A=reshape(a,3,3)

A=

-4-12

-303

-214

>>a1=diag(A,1)

a1=

-1

3

>>A1=diag(a1,-1)

A1=

000

-100

030

数组构作技法综合

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

(1)数组的赋值扩展法

A=reshape(1:

9,3,3)

A(5,5)=111

A(:

6)=222

>>A=reshape(1:

9,3,3)

A=

147

258

369

>>A(5,5)=111

A=

14700

25800

36900

00000

0000111

>>A(:

6)=222

A=

14700222

25800222

36900222

00000222

0000111222

高维数组

高维数组的创建

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

A(2,2,2)=1

B(2,5,:

)=1:

3

A(:

:

1)=

147

258

369

A(:

:

2)=

000

010

000

B(:

:

1)=

00000

00001

B(:

:

2)=

00000

00002

B(:

:

3)=

00000

00003

高维数组的标识

【例2.11.2-1】维数、大小和长度

clear;A=reshape(1:

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

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

【例2.11.3-1】数组元素对称交换指令flipdim的使用示例。

A=reshape(1:

18,2,3,3)

A(:

:

1)=

135

246

A(:

:

2)=

7911

81012

A(:

:

3)=

131517

141618

flipdim(A,1)

ans(:

:

1)=

246

135

ans(:

:

2)=

81012

7911

ans(:

:

3)=

141618

131517

flipdim(A,3)

ans(:

:

1)=

131517

141618

ans(:

:

2)=

7911

81012

ans(:

:

3)=

135

246

“非数”和“空”数组

非数NaN

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

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

a=

NaN

b=

NaN

c=

NaN

(2)0*a,sin(a)

ans=

NaN

ans=

NaN

(3)a==nan

ans=

0

(4)a~=nan

a==b

b>c

ans=

1

ans=

0

ans=

0

(5)class(a)

isnan(a)

ans=

double

ans=

1

“空”数组

【例2.12.2-1】关于“空”数组的算例。

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

a=

[]

b=

Emptymatrix:

2-by-0

c=

Emptymatrix:

2-by-0

d=

Emptymatrix:

2-by-0

f=

Emptyarray:

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

(2)class(a)

isnumeric(a)

isempty(a)

ans=

double

ans=

1

ans=

1

whicha

ndims(a)

size(a)

aisavariable.

ans=

2

ans=

00

(3)b_c1=b.*c

b_c2=b'*c

b_c3=b*c'

b_c1=

Emptymatrix:

2-by-0

b_c2=

[]

b_c3=

00

00

(4)a==b

b==c

c>d

a==0

a~=0

(5)A=reshape(-4:

5,2,5)

L2=A>10

find(L2)

(6)A(:

[2,4])=[]

实验心得:

通过本实验,了解了一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用标准数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数NaN、“空”数组概念和应用;关系和逻辑操作。

 

实验三字符串、元胞和构架数组

实验目的:

1、了解内建数据类型(Built-indatatype)

2、认识数值数组(NumericArray),字符串数组(CharacterStringArray)、元胞数组(Cellarray)和构架数组(Structurearray)

实验内容:

.1.5字符串入门

【例3.1.1-1】先请读者实际操作本例,以体会数值量与字符串的区别。

clear

a=12345.6789

class(a)

a_s=size(a)

b='S'

class(b)

b_s=size(b)

whos

a=1.2346e+004

a_s=11

b=S

ans=char

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

当前位置:首页 > PPT模板 > 自然景观

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

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