MATLAB运算基础第2章答案.docx

上传人:b****1 文档编号:23080111 上传时间:2023-04-30 格式:DOCX 页数:57 大小:525.49KB
下载 相关 举报
MATLAB运算基础第2章答案.docx_第1页
第1页 / 共57页
MATLAB运算基础第2章答案.docx_第2页
第2页 / 共57页
MATLAB运算基础第2章答案.docx_第3页
第3页 / 共57页
MATLAB运算基础第2章答案.docx_第4页
第4页 / 共57页
MATLAB运算基础第2章答案.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

MATLAB运算基础第2章答案.docx

《MATLAB运算基础第2章答案.docx》由会员分享,可在线阅读,更多相关《MATLAB运算基础第2章答案.docx(57页珍藏版)》请在冰豆网上搜索。

MATLAB运算基础第2章答案.docx

MATLAB运算基础第2章答案

实验01讲评、参考答案

讲评

未交实验报告的同学名单

数学:

6人(11、12级)

信科:

12-04,12-22,13-47

批改情况:

问题1:

不仔细,式子中出错。

问题2:

提交的过程不完整。

问题3:

使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。

问题4:

截屏窗口没有调整大小。

附参考答案:

实验01MATLAB运算基础

(第2章MATLAB数据及其运算)

一、实验目的

1.熟悉启动和退出MATLAB的方法。

2.熟悉MATLAB命令窗口的组成。

3.掌握建立矩阵的方法。

4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。

二、实验内容

1.数学表达式计算

先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

1.1计算三角函数

(注意:

度要转换成弧度,e2如何给出)

示例:

点击CommandWindow窗口右上角的

,将命令窗口提出来成悬浮窗口,适当调整窗口大小。

命令窗口中的执行过程:

1.2计算自然对数

,其中

(提示:

clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。

应用点乘方)

命令窗口中的执行过程:

1.3求数学表达式的一组值

提示:

利用冒号表达式生成a向量,求各点的函数值时用点乘运算。

命令窗口中的执行过程:

1.4求分段函数的一组值

,其中t

提示:

用逻辑表达式求分段函数值。

命令窗口中的执行过程:

1.5对工作空间的操作

接着显示MATLAB当前工作空间的使用情况并保存全部变量

提示:

用到命令who,whos,save,clear,load,请参考教材相关内容。

命令窗口中的执行过程:

>>who%显示当前工作空间中的变量名

Yourvariablesare:

atxz1z2z3z4

>>whos%显示当前工作空间中的变量名及信息

NameSizeBytesClassAttributes

a1x61488double

t1x648double

x2x264doublecomplex

z11x18double

z22x264doublecomplex

z31x61976doublecomplex

z41x648double

>>savevarfile%生成文件varfile.mat,并将当前工作空间的变量存入其中

>>clearall%清除当前工作空间中的全部变量

>>who

>>whos

>>loadvarfile

>>who

Yourvariablesare:

atxz1z2z3z4

>>whos

NameSizeBytesClassAttributes

a1x61488double

t1x648double

x2x264doublecomplex

z11x18double

z22x264doublecomplex

z31x61976doublecomplex

z41x648double

>>

2.矩阵运算与数组运算

已知:

2.1矩阵加、减和数乘运算

A+6*B和A-B+I(其中I为单位矩阵。

注意:

如何得到单位矩阵)

命令窗口中的执行过程:

2.2矩阵乘积和点乘积

A*B和A.*B

命令窗口中的执行过程:

2.3矩阵的乘方和点乘方

A^3和A.^3

命令窗口中的执行过程:

2.4矩阵的右除和左除

A/B及B\A

命令窗口中的执行过程:

2.5拼接矩阵成大的矩阵

[A,B]和[A([1,3],:

);B^2]

命令窗口中的执行过程:

3.矩阵乘积、矩阵的子矩阵

设有矩阵A和B

3.1求矩阵A和B的乘积

求它们的乘积并赋给C。

(提示:

可简化A的输入,用冒号表达式、reshape、矩阵转置)

命令窗口中的执行过程:

3.2求矩阵C的子矩阵

将矩阵C的右下角3×2子矩阵赋给D。

命令窗口中的执行过程:

3.3查看MATLAB工作空间的使用情况

命令窗口中的执行过程:

4.完成下列数据操作

4.1求[100,999]之间能被21整除的数的个数

提示:

先利用冒号表达式,再利用find和length函数。

命令窗口中的执行过程:

4.2建立一个字符串向量,删除其中的大写字母

提示:

利用find函数和空矩阵。

命令窗口中的执行过程:

三、实验提示

1.1计算三角函数提示

(注意:

度要转换成弧度,e2如何给出)

提示1:

示例:

点击CommandWindow窗口右上角的

,将命令窗口提出来成悬浮窗口,适当调整窗口大小。

命令窗口中的执行过程:

提示2:

e2的表示请查表“2.3常用数学函数及其含义”。

用exp

(2)。

1.2计算自然对数提示

,其中

提示1:

clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。

提示2:

ln和开方的表示请查“表2.3常用数学函数及其含义”。

用log,sqrt。

提示3:

x2是数组运算。

用x.^2或x.*x。

提示4:

i为复数的虚数单位(j也是)。

若将i作变量则其虚数单位无效,恢复用cleari。

慎用i,j做变量。

1.4求分段函数的一组值提示

,其中t

提示:

用逻辑表达式求分段函数值。

提示1:

参考例2.4。

提示2:

对于第1个分段条件表达式0≤t<1,有以下结果:

对于第2、3个分段条件表达式,有类似的结果。

于是,可以得到:

分段函数值=第1个表达式*第1个分段条件表达式+第2个表达式*第2个分段条件表达式+第3个表达式*第3个分段条件表达式+…

注意:

分段区间是不重叠的。

对于在定义区间中任给的变量值,它只满足一个分段条件表达式(值为1),其它不满足(值为0),满足的对应项的值是其表达式的值,不满足的对应项值为0。

代入本题得:

z4=t^2*(t>=0&&t<1)+(t^2-1)*(t>=1&&t<2)+(t^2+2*t+1)*(t>=2&&t<3)

继续做下去可以完成本题。

若变量取100个值,求对应的函数值,还按这种方法来求做就有问题啦。

MATLAB提供了一种简单的方法:

t不是一个个取值,而是把所有值放到t中成一个行向量,表达式自动逐个将t中的值代入表达式计算,得到对应的一组函数值。

实现这种功能需要将上面的表达式中的乘方号(^)和乘号(*)前加点(.),即改成(.^)和(.*),相当于循环,它不同于线性代数中相应的矩阵乘方(^)和乘法(*)运算。

用冒号表达式更简单:

以下是分解式:

至此,能理解表达式的计算结果了吗?

1.5对工作空间的操作提示

接着显示MATLAB当前工作空间的使用情况并保存全部变量

提示1:

用到命令who,whos,save,clear,load,请参考教材相关内容。

步骤:

查看工作空间;保存工作空间;清除工作空间;再查看工作空间;装入工作空间;再查看工作空间。

2.1矩阵加、减和数乘运算提示

A+6*B和A-B+I(其中I为单位矩阵。

注意:

如何得到单位矩阵)

提示1:

3阶单位矩阵用eye(3)或eye(3,3)。

4.完成下列数据操作

4.1求[100,999]之间能被21整除的数的个数提示

提示:

先利用冒号表达式,再利用find和length函数。

提示1:

步骤:

用冒号表达式把[100,999]之间的整数放在一个向量里(如A);

用mod求得一个向量(如B),使A中能被21整除的数在B中对应位置为1,B的其它位置为0;

用find求得B中不为0的元素的序号,放入一个向量中(如K);

显示A中对应K的元素;%即能被21整除的数

用length显示K的元素个数。

%即能被21整除的数的个数

4.2建立一个字符串向量,删除其中的大写字母提示

提示:

利用find函数和空矩阵。

提示1:

利用find函数和空矩阵。

注意使用关系运算、逻辑运算。

注意!

本题中大写字母所在位置是随机的,要用关系运算和逻辑运算,以及find找到它们所在位置的序号。

提示2:

四、教程:

第2章MATLAB数据及其运算

2.1MATLAB数据的特点p17

矩阵

是MATLAB最基本、最重要的数据对象。

MATLAB的大部分运算或命令都是在矩阵(复数域上)运算的意义下执行的。

标量对应仅含一个元素的矩阵。

数值数据

双精度数占64位,转换函数double

单精度数占32位,转换函数single

带符号整数转换函数int8,int16,int32

无符号整数转换函数uint8,uint16,uint32

字符数据转换函数char

结构体类型(Structure)

单元类型(Cell)

逻辑型非0为true,0为false

2.2变量及其操作

变量与赋值

1.变量命名

Ø以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。

Ø区分字母的大小写。

MATLAB提供的标准函数名以及命令名必须用小写字母。

2.赋值语句

(1)变量=表达式

(2)表达式(值赋给预定义变量ans)

其中,表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。

例2.1计算表达式的值p18

的计算结果赋给变量x,然后显示出结果。

>>x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)

x=

其中,pi和i都是MATLAB预先定义的变量,分别代表圆周率π和虚数单位。

3.预定义变量p18

表2.1常用的预定义变量及其含义

预定义变量

含义

ans

eps

pi

i,j

inf,Inf

NaN,nan

nargin

nargout

realmax

realmin

lasterr

lastwar

默认赋值变量

机器零阈值

π近似值

虚数单位

无穷大,如1/0的结果

非数,如0/0,inf/inf的结果

函数输入参数个数

函数输出参数个数

最大正实数

最小正实数

存放最新的错误信息

存放最新的警告信息

预定义变量有特定的含义,应尽量避免重新赋值。

i=2%对预定义变量重新赋值

2*i

cleari%恢复预定义变量

2*i

i=

2

ans=

4

ans=

2.2.2变量的管理p19

1.内存变量的显示与删除

显示工作空间中驻留的变量名清单及信息命令:

who%显示变量名清单

whos%显示变量名清单及信息

删除工作空间中的变量命令:

clear变量名

工作空间窗口专门用于内存变量的管理。

在该窗口中显示所有内存变量的属性。

●当选中某些变量后,再单击Delete按钮,将删除这些变量。

●双击变量后,将进入变量编辑器。

可以观察变量中的具体元素,也可修改具体元素。

●输入较大矩阵时,可采用变量编辑器。

2.内存变量文件

用MAT文件可把当前工作空间中的一些有用变量长久地保留下来,扩展名是.mat。

MAT文件的生成和装入,常用格式为:

save文件名[变量名表][-append][-ascii]

load文件名[变量名表][-ascii]

●文件名可带路径,不需带扩展名.mat,默认对.mat文件进行操作。

●变量名表变量名以空格分隔。

省略时,保存或装入全部变量。

●-ascii选项使文件以ASCII格式处理,省略时以二进制格式处理。

●-append选项使变量追加到MAT文件中。

2.2.3数据的输出格式p20

用十进制数表示一个常数,可采用日常记数法和科学记数法。

一般情况下,内部每一个数据元素都用双精度数表示和存储。

设置或改变数据输出格式

format命令的格式为:

format格式符

格式符决定数据的输出格式

表2.2控制数据输出格式格式符及含义

格式符

含义

short

(默认)

小数点后4位,不超过7位有效数字。

大于1000的实数用5位有效数字的科学记数法

long

15位有效数字

shorte

5位有效数字科学记数法

longe

15位有效数字科学记数法

shortg

从short和shorte选择最佳方式

longg

从long和longe选择最佳方式

rat

近似有理数表示

hex

十六进制表示

+

正数、负数、零分别用+、-、空格表示

bank

银行格式,元、角、分表示

compact

输出变量之间无空行

loose

输出变量之间有空行

可用Helpformat查询

例输出格式format

>>4/3%当前输出格式

ans=

>>formatlong%15位有效数字形式输出

>>4/3

ans=

>>formatrat%近似有理数表示

>>4/3

ans=

4/3

>>formatcompact%输出变量之间没有空行

>>4/3

ans=

4/3

>>formatloose%输出变量之间有空行

>>4/3

ans=

4/3

>>formatshort%short为默认输出格式

2.3矩阵的表示p21

表矩阵操作函数及其含义

函数名

含义

eye

ones

linspace

sub2ind

ind2sub

size

length

reshape

end

[]

单位矩阵

全1矩阵

生成行向量

下标转换成序号

序号转换成下标

给出矩阵的行数和列数

给出矩阵行数和列数中较大者

矩阵重排

预定义变量,某一维末尾下标

空矩阵

2.3.1矩阵的建立

1.直接输入法

从键盘直接输入矩阵的元素。

方法如下:

Ø将矩阵的元素用方括号括起来,输入元素;

Ø同一行的元素间用空格或逗号分隔;

Ø不同行的元素间用分号(或回车)分隔。

>>A=[1,2,3;456;7,89]

A=

123

456

789

2.利用M文件建立矩阵

对于比较大且复杂的矩阵,可专门建立一个M文件。

例2.2利用M文件建立矩阵

(1)启动文本编辑器,输入:

MYMAT=[101,102,103,104,105;

201,202,203,204,205;

301,302,303,304,305]

(2)存盘(文件名为mymatrix.m)。

(3)在命令窗口中输入mymatrix,即运行该M文件,就建立一个名为MYMAT的矩阵。

3.建立大矩阵(矩阵拼接)

大矩阵可由方括号中的小矩阵或向量建立。

>>A=[1,2;3,4]

A=

12

34

>>eye

(2)

ans=

10

01

>>ones

(2)

ans=

11

11

>>C=[A,eye

(2),ones

(2),A]

C=

12101112

34011134

2.3.2冒号表达式

用冒号表达式产生行向量,一般格式:

e1:

e2:

e3

其中e1为初始值,e2为步长,e3为终止值上限。

用linspace函数产生行向量。

调用格式:

linspace(a,b,n)

其中a和b是第一个和最后一个元素,n是元素总数。

2.3.3矩阵的拆分

1.矩阵元素

通过下标引用矩阵的元素,例

>>A=[1,2,3;4,5,6]

A=

123

456

>>A(2,3)

ans=

6

>>A(2,2)=22;

>>A

A=

123

4226

>>A(4,5)=10;

>>A

A=

12300

422600

00000

000010

采用矩阵元素的序号来引用矩阵元素。

元素的序号是相应元素在内存中的排列顺序。

在MATLAB中,矩阵按列存储,先第一列,再第二列,依次类推。

>>A=[1,2,3;4,5,6]

A=

123

456

>>A(3)

ans=

2

>>A(5)

ans=

3

>>A(8)

?

?

?

AttemptedtoaccessA(8);indexoutofboundsbecausenumel(A)=6.

numel(A)返回A中元素个数。

序号(Index)与下标(Subscript)一一对应。

以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。

互转换关系用sub2ind和ind2sub函数求得。

>>A=ones(3,4)

A=

1111

1111

1111

>>size(A)%给出矩阵的行数和列数

ans=

34

>>sub2ind(size(A),1,2)%下标(1,2)转换为序号

ans=

4

>>[i,j]=ind2sub(size(A),3)%序号转换为下标

i=

3

j=

1

>>length(A)%给出矩阵行数和列数中较大者

ans=

4

reshape(A,m,n)在矩阵总元素保持不变的前提下,将矩阵重新排成m×n矩阵。

>>x=1:

1:

12;

>>y=reshape(x,3,4)

y=

14710

25811

36912

>>z=reshape(y,2,7)

?

?

?

Errorusing==>reshape

ToRESHAPEthenumberofelementsmustnotchange.

2.矩阵拆分

(1)利用冒号表达式获得子矩阵

已知A为矩阵

A(:

j)第j列全部元素;

A(i,:

)第i行的全部元素;

A(i,j)第i行、第j列的元素;

A(i:

i+m,:

)第i~i+m行的全部元素;

A(:

k:

k+m)第k~k+m列的全部元素;

A(i:

i+m,k:

k+m)第i~i+m行内,并在第k~k+m列中的所有元素;

A(:

)将每一列元素堆叠起来,成为一个列向量。

end表示某一维的末尾元素下标。

A(end,:

)最后一行

A(:

end)最后一列

(2)利用空矩阵删除矩阵的元素

给变量X赋空矩阵的语句:

X=[]

注意,X=[]与clearX不同:

clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。

2.4MATLAB数据的运算p26

2.4.1算术运算

1.基本算术运算

MATLAB的基本算术运算有:

+加

-减

*乘

/右除

\左除

^乘方

注意,运算是在矩阵意义下进行的。

(1)矩阵加减运算

假定矩阵A和B,则A+B和A-B实现矩阵的加减运算。

运算规则是:

●若A和B的维数相同,则可以执行矩阵的加减运算,A和B的相应元素相加减。

●若A与B的维数不相同,将给出错误信息。

注意,A、B均不是标量。

(2)矩阵乘法

若A为m×n矩阵,B为n×p矩阵,则

C=A*B

为m×p矩阵。

(3)矩阵除法

有两种矩阵除法运算:

\左除

/右除

若A矩阵是非奇异方阵,则A\B和B/A运算可以实现。

A\B等效于inv(A)*B

B/A等效于B*inv(A)

对于含有标量的运算,两种除法运算的结果相同。

如3/4和4\3有相同的值,都等于。

又如设a=[10.5,25],则

a/5=5\a=[2.10005.0000]

对于矩阵运算,一般A\B≠B/A。

(4)矩阵的乘方

一个矩阵的乘方运算可表示成

A^x

要求A为方阵,x为标量。

2.点运算

有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。

点运算符有

.*点乘

./点右除

.\点左除

.^点乘方

两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。

3.MATLAB常用数学函数p29

●函数的自变量规定为矩阵变量。

●运算法则是将函数逐项作用于矩阵的元素上。

●结果是一个与自变量同维数的矩阵。

表2.3常用数学函数及其含义p29

函数名

含义

三角函数

sqrt

log

log10

log2

exp

pow2

abs

angle

real

imag

conj

rem

mod

fix

floor

ceil

round

sign

gcd

lcm

平方根函数

自然对数函数

常用对数函数

以2为底的对数函数

自然指数函数

2的幂

绝对值函数

复数的幅角

复数的实部

复数的虚部

复数共轭运算

求余数或模运算

模运算

向零方向取整

不大于自变量的最大整数

不小于自变量的最小整数

四舍五入到最邻近的整数

符号函数

最大公因子

最小公倍数

函数使用说明:

(1)三角函数以弧度为单位计算。

(2)abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。

>>abs(-10)

ans=

10

>>abs(3+4i)

ans=

5

>>abs('abc')

ans=

979899

(3)用于取整的函数有

fix向0方向取整

floor向-∞方向取整

ceil向+∞方向取整

round四舍五入到最邻近的整数

(4)rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。

rem求余数或模运算

mod模运算

●当y≠0时

rem(x,y)=x-y.*fix(x./y)

mod(x,y)=x-y.*floor(x./y)

●当y=0时

rem(x,0)=NaN(非数)

mod(x,0)=x

2.4.2关系运算p30

6种关系运算符:

<小于

<=小于或等于

>大于

>=大于或等于

==等于

~=不等于

运算法则:

(1)两个标量的比较

若关系成立,结果为1,否则为0。

(2)两个同维数矩阵的比较

对相同位置的元素比较。

(3)标量与矩阵的比较

标量与矩阵的每一个元素比较。

例2.3建立5阶方阵,判断A的元素是否能被3整除。

A=[24,35,13,22,63;23,39,47,80,80;...

90,41,80,29,10;45,57,85,62,21;...

37,19,31,8

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

当前位置:首页 > 小学教育 > 其它课程

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

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