当前位置:文档之家› 实验二matlab矩阵分析与处理

实验二matlab矩阵分析与处理

实验二matlab矩阵分析与处理
实验二matlab矩阵分析与处理

《MATLAB及应用A》第二次上机作业

一、一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落下时共经过多少米?第10次反弹多高?

MATLAB源程序:

MATLAB运行结果:

二、有如下一段MATLAB程序,请解释说明每个语句的功能,必要时用数学表达式(不是在MATLAB中的输入形式);并给出y1、y2、y3的值(可从MATLAB中复制)。

MATLAB源程序:

x=linspace(0,6);

y1=sin(2*x);

y2=sin(x.^2);

y3=(sin(x)).^2;

各条命令语句的功能如下:

y1、y2、y3的值分别为:

三、教材第55页习题三,第3题。

MATLAB源程序:

MATLAB运行结果:

四、选择题

(1) i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后,a, b, c的值分别是多少?()

(A) a=4, b=4, c=2.0000i

(B) a=4, b=2.0000i, c=2.0000i

(C) a=2.0000i, b=4, c=2.0000i

(D) a=2.0000i, b=2.0000i, c=2.0000i

(2) 求解方程x4-4x3+12x-9 = 0 的所有解,其结果为()

(A) 1.0000, 3.0000, 1.7321, -1.7321

(B) 1.0000, 3.0000, 1.7321i, -1.7321i

(C) 1.0000i, 3.0000i, 1.7321, -1.7321

(D) -3.000-0i, 3.0000i, 1.7321, -1.7321

五、求[100,1000]之间的全部素数(选做)。

MATLAB源程序: MATLAB运行结果:

一、一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落下时共经过多少米?第10次反弹多高?

MATLAB源程序:

>> a=(0:-1:-9) %产生一个行向量a

a =

0 -1 -2 -3 -4 -5 -6 -7 -8 -9

>> b=pow2(a) %对行向量a中的每一个元素分别求幂函数

b =

1.0000 0.5000 0.2500 0.1250 0.0625 0.0313 0.0156 0.007 8 0.0039 0.0020

>> h=100*b %对行向量b中的每一个元素分别乘以100

h =

100.0000 50.0000 25.0000 12.5000 6.2500 3.1250 1.5625 0. 7813 0.3906 0.1953

>> s1=sum(h) %对行向量h中的元素求和

s1 =

199.8047

>> s=s1*2-100 %求出第10次落下时经过的高度

s =

299.6094

>> h10=h(10)/2 %求出第10次反弹的高度

h10 =

0.0977

二、有如下一段MATLAB程序,请解释说明每个语句的功能,必要时用数学表达式(不是在MATLAB中的输入形式);并给出y1、y2、y3的值(可从MATLAB 中复制)。

MATLAB源程序:

x=linspace(0,6);

程序说明:从0到6之间产生一个100个元素的行向量,每个元素的间距为6\99。

y1=sin(2*x);

程序说明:行向量x中的每个元素分别乘以二之后再求正弦,得到一个与行向量x同维的行向量y1.

y1=sin(2*x);

程序说明:行向量x中的每个元素分别求平方之后再求正弦,得到一个与行向量x同维的行向量y2.

y3=(sin(x)).^2;

程序说明:行向量x中的每个元素求正弦之后再分别求平方,得到一个与行向量x同维的行向量y3.

y1、y2、y3的值分别为:

>> y1=sin(2*x)

y1 =

Columns 1 through 10

0 0.1209 0.2401 0.3557 0.4661 0.5696 0.6648 0.7503 0.8247 0.8870

Columns 11 through 20

0.9364 0.9719 0.9933 1.0000 0.9921 0.9696 0.9328 0.882 4 0.8191 0.7437

Columns 21 through 30

0.6574 0.5615 0.4573 0.3464 0.2304 0.1111 -0.0099 -0.13 08 -0.2497 -0.3649

Columns 31 through 40

-0.4748 -0.5778 -0.6722 -0.7568 -0.8303 -0.8916 -0.9398 -0.97 42 -0.9944 -0.9999

Columns 41 through 50

-0.9908 -0.9671 -0.9292 -0.8777 -0.8133 -0.7370 -0.6499 -0.55 32 -0.4484 -0.3371

Columns 51 through 60

-0.2207 -0.1012 0.0198 0.1406 0.2593 0.3742 0.4835 0.58 58 0.6795 0.7633

Columns 61 through 70

0.8358 0.8960 0.9431 0.9764 0.9954 0.9997 0.9894 0.964 5 0.9255 0.8729

Columns 71 through 80

0.8075 0.7303 0.6423 0.5449 0.4395 0.3277 0.2111 0.091 3 -0.0298 -0.1504

Columns 81 through 90

-0.2688 -0.3833 -0.4922 -0.5938 -0.6868 -0.7696 -0.8412 -0.90 04 -0.9464 -0.9785

Columns 91 through 100

-0.9963 -0.9994 -0.9879 -0.9618 -0.9217 -0.8680 -0.8016 -0.72 35 -0.6347 -0.5366

>> y3=(sin(x)).^2

y3 =

Columns 1 through 10

0 0.0037 0.0146 0.0327 0.0576 0.0891 0.1265 0.1694 0.2172 0.2692

Columns 11 through 20

0.3245 0.3824 0.4420 0.5025 0.5629 0.6224 0.6802 0.73 52 0.7869 0.8343

Columns 21 through 30

0.8768 0.9138 0.9447 0.9690 0.9865 0.9969 1.0000 0.995 7 0.9842 0.9655

Columns 31 through 40

0.9400 0.9081 0.8702 0.8268 0.7787 0.7264 0.6709 0.612 8 0.5531 0.4926

Columns 41 through 50

0.4322 0.3728 0.3152 0.2604 0.2091 0.1621 0.1200 0.083 5 0.0531 0.0293

Columns 51 through 60

0.0123 0.0026 0.0001 0.0050 0.0171 0.0363 0.0623 0.094 8 0.1332 0.1769

Columns 61 through 70

0.2255 0.2780 0.3338 0.3920 0.4519 0.5124 0.5728 0.632 0 0.6894 0.7439

Columns 71 through 80

0.7949 0.8416 0.8832 0.9192 0.9491 0.9724 0.9887 0.997 9 0.9998 0.9943

Columns 81 through 90

0.9816 0.9618 0.9352 0.9023 0.8634 0.8192 0.7704 0.717 5 0.6615 0.6031

Columns 91 through 100

0.5432 0.4826 0.4223 0.3632 0.3060 0.2517 0.2011 0.15

48 0.1136 0.0781

三、教材第55页习题三,第3题。

>> A=[1 2 1 0;0 1 0 1;0 0 2 1;0 0 0 3] %定义一个4阶的方阵A

A =

1 2 1 0

0 1 0 1

0 0 2 1

0 0 0 3

>> B=inv(A) %求出A的逆矩阵

B =

1.0000 -

2.0000 -0.5000 0.8333

0 1.0000 0 -0.3333

0 0 0.5000 -0.1667

0 0 0 0.3333

>> C=det(A) %求出A矩阵的值

C =

6

>> A*B

ans =

1.0000 0 0 -0.0000

0 1.0000 0 0

0 0 1.0000 0

0 0 0 1.0000

>> B*A

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

因为A*B的值和B*A的值相等,所以A和A的逆矩阵是互逆的。

四、选择题

(1) i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后,a, b, c的值分别是多少?( C )

(A) a=4, b=4, c=2.0000i

(B) a=4, b=2.0000i, c=2.0000i

(C) a=2.0000i, b=4, c=2.0000i

(D) a=2.0000i, b=2.0000i, c=2.0000i

(2) 求解方程x4-4x3+12x-9 = 0 的所有解,其结果为( A )

(A) 1.0000, 3.0000, 1.7321, -1.7321

(B) 1.0000, 3.0000, 1.7321i, -1.7321i

(C) 1.0000i, 3.0000i, 1.7321, -1.7321

(D) -3.000-0i, 3.0000i, 1.7321, -1.7321

五、求[100,1000]之间的全部素数(选做)。

>> a=100:1000; %在100到1000之间产生一个含901个元素的矩阵,步长为1

>> b=isprime(a); %通过isprime函数判断a中的元素是否为质数

>> c=a.*b; %将a中的质数给表示出来

>> c(c= =0)=[] %删除行向量c中的零元素

c =

Columns 1 through 17

101 103 107 109 113 127 131 137 139 149 151 157 1 63 167 173 179 181

Columns 18 through 34

191 193 197 199 211 223 227 229 233 239 241 251 2 57 263 269 271 277

Columns 35 through 51

281 283 293 307 311 313 317 331 337 347 349 353 3 59 367 373 379 383

Columns 52 through 68

389 397 401 409 419 421 431 433 439 443 449 457 4 61 463 467 479 487

Columns 69 through 85

491 499 503 509 521 523 541 547 557 563 569 571 5 77 587 593 599 601

Columns 86 through 102

607 613 617 619 631 641 643 647 653 659 661 673 6 77 683 691 701 709

Columns 103 through 119

719 727 733 739 743 751 757 761 769 773 787 797 8 09 811 821 823 827

Columns 120 through 136

829 839 853 857 859 863 877 881 883 887 907 911 9 19 929 937 941 947

Columns 137 through 143

953 967 971 977 983 991 997

Matrix matlab矩阵处理

Q1: 5-1-4 %%part 1 WITHOUT PIVOTING A=[2,4,-5;6,12.001,1;4,-8,-3]; b=[-5,33.002,-21]'; E1=[1,0,0;-3,1,0;0,0,1]; E2=[1,0,0;0,1,0;-2,0,1]; E3=[1,0,0;0,1,0;0,16000,1]; U=E3*E2*E1*A L=inv(E1)*inv(E2)*inv(E3) X=inv(U)*inv(L)*b %%%part 2 WITH PIVOTING A=[2,4,-5;6,12.001,1;4,-8,-3]; b=[-5,33.002,-21]'; P12=[0,1,0;1,0,0;0,0,1]; P23=[1,0,0;0,0,1;0,1,0]; E1=[1,0,0;-1/3,1,0;0,0,1]; E2=[1,0,0;0,1,0;-2/3,0,1]; E3=[1,0,0;0,1,0;0,-0.0003/16.0007,1]; U=E3*P23*E2*E1*P12*A; V=inv(P12)*inv(E1)*inv(E2)*inv(P23)*inv(E3); P=P23*P12 L=P*V; X=inv(U)*inv(L)*P*b

Q7: 5-3-22 Condition number A=[10000,10001;10001,10002;10002,10003;10003,10004;10004,10005] b=[20001,20003,20005,20007,20009]' condtionnumber=cond(A,2) x=(inv(A'*A))*A'*b Cholesky factorization clear all % A=[10000,10001;10001,10002;10002,10003;10003,10004;10004,10005] % b=[20001,20003,20005,20007,20009]’ A1=[10000,10001;10002,10003] b1=[20001,20005]' R=chol(A1) L=R' y=inv(L)*b1 x=inv(L')*y

MATLAB矩阵处理_习题答案

第3章 MATLAB矩阵处理 习题3 一、选择题 1.产生对角线上全为1,其余为0的2行3列矩阵的命令是()。C A.ones(2,3) B.ones(3,2) C.eye(2,3) D.eye(3,2) 2.建立3阶单位矩阵A的命令是()。A A.A=eye(3) B.A=eye(3,1) C.A=eye(1,3) D.A=ones(3) 3.产生和A同样大小的幺矩阵的命令是()。B A.eye(size(A)) B.ones(size(A)) C.size(eye(A)) D.size(ones(A)) 4.建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数,相应的命令是()。D A.A=fix(100+200*rand(5,6)) B.A=fix(200+100*rand(5,6)) C.A= fix(100+300*rand(5,6)) D.A=fix(100+101*rand(5,6)) 5.产生均值为1、方差为的500个正态分布的随机数,相应的命令是()。A。 A.1+sqrt*randn(25,20) B.1+*randn(500) C.+randn(500) D.+randn(25,20) 6.从矩阵A提取主对角线元素,并以这些元素构成对角阵B,相应的命令是()。B A.B=diag(A) B.B=diag(diag(A)) C.B=diag(triu(A)) D.B=diag(tril(A)) 7.在MATLAB中定义A=randn(5,4,3,2),则下列关于A的操作中正确的是()。D A.y=eig(A) B.y=reshape(A,[4 3 6 7]) C.y=cond(A) D.y=sin(A) 8.在命令行窗口中分别输入下列命令,对应输出结果正确的是()。C A.命令x=[-2:2]',结果x=[-2 -1 0 1 2] B.命令x=zeros(1,2);x>0,结果ans=1 C.命令y=diag(eye(3),1)',结果y=[0 0] D.命令5-10*rand(1,2),结果ans=[ ] 9.将矩阵A对角线元素加30的命令是()。A A.A+30*eye(size(A)) B.A+30*eye(A) C.A+30*ones(size(A)) D.A+30*eye(4)

matlab矩阵操作汇总

matlab矩阵操作大全 1.1.1数值矩阵的生成 1.实数值矩阵输入 MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。 不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多 重的方括号。如: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] Time = 11 12 1 2 3 4 5 6 7 8 9 10 >> X_Data = [2.32 3.43 ; 4.37 5.98] X_Data = 2.43 3.43 4.37 5.98 >> vect_a = [1 2 3 4 5] vect_a = 12~ 3 4 5 >> Matrix_B = [1 2 3 ; >> 2 3 4 ; 3 4 5] Matrix_B = 1 2 3 2 3 4 3 4 5 >> Null_M = [ ] %生成一个空矩阵

2 .复数矩阵输入 复数矩阵有两种生成方式: 第一种方式 1/ 13

例1-1 >> a="2".7。b=13/25 >> C 二[1,2*a+i*b,b*sqrt(a) 5.4000 + 0.5200i 0.8544 5.3000 4.5000 第2种方式 例1-2 >> R=[1 2 3 。 4 5 6], M=[11 12 13 。 14 15 16] R = I 2 3 4 5 6 M = II 12 13 14 15 16 >> CN="R"+i*M CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i si n(pi/4),a+5*b,3.5+1] C= 1.0000 0.7071

实验二 MATLAB矩阵分析与处理

实验二MATLAB矩阵分析与处理 1、 E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([rand(1,2)]); A=[E R;O S]; B=A^2-[E R+R*S;O S^2] 运行得:B = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 故等式成立。 2、 H=hilb(5); P=pascal(5); Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) 行列式值:Hh = 3.7493e-12 Hp = 1 条件数:Th = 4.7661e+05 Tp = 8.5175e+03 , 可知帕斯卡矩阵的条件数更接近1,所以帕斯卡矩阵的性能更好。3、 建立5阶随机矩阵可得如下结果: a=rand(5);det(a) ans = 0.0710 trace(a) ans = 3.0400 rank(a) ans = 5 cond(a)

ans = 19.0668 4、 A=[-29 6 18;20,5,12;-8 8 5] [V,D]=eig(A) V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 所以求得的三个特征值为-25.3169、-10.5182和16.8351,各特征值对应的特征向量为V的各列构成的向量。 5、 a=hilb(4);a=a(1:3,2:4) b=[0.95 0.67 0.52]' x=inv(a)*b (1)方程解为:x = 1.2000 0.6000 0.6000 b(3)=0.53;x2=inv(a)*b x2 = 3.0000 -6.6000 6.6000 (2)b3仅改变了0.01,解的相对变化大得多。 (3) cond(a)的结果为1.3533e+03,远大于1。由条件数的定义可知,系数矩阵A的条件数较大,解会因系数矩阵的微小扰动发生大的变化,而由此题可知解也会因方程右边向量的微小扰动发生大的变化。 6、 A=1:9;A=reshape(A,3,3) a1=sqrt(A);a2=sqrtm(A) a1 = 1.0000 2.0000 2.6458 1.4142 2.2361 2.8284 1.7321 2.4495 3.0000 a2 = 0.4498 + 0.7623i 1.0185 + 0.0842i 1.5873 - 0.5940i 0.5526 + 0.2068i 1.2515 + 0.0228i 1.9503 - 0.1611i 0.6555 - 0.3487i 1.4844 - 0.0385i 2.3134 + 0.2717i 可得sqrtm(A)为对矩阵A整体开方,而sqrt(A)为对矩阵A里的每个元素分别开方。

矩阵在matlab中的基本命令

一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵; (2) zeros()函数:产生全为0的矩阵;

(3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。 2.矩阵拆分

Matlab与工程计算 第二章 Matlab矩阵及其运算

第2章Matlab矩阵及其运算 2.1 Matlab变量 2.2 Matlab数值矩阵 2.3 运算符 2.4 基本数学函数 2.5 稀疏矩阵 2.6 矩阵分析 2.8 字符串 2.9 结构数据 2.10 细胞矩阵

2.1 Matlab变量 1. 变量命名规则 在MATLAB 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大小写。 2.变量赋值 变量=表达式 3.预定义变量 i,j,pi,eps,realmin,realmax,inf,NaN 预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。

内存变量的管理 1.指令操作法 who whos clear 2. 现场菜单操作法 3. 内存变量文件(.mat) save [文件名] [变量名表] [-append][-ascii] load [文件名] [变量名表] [-ascii] help save help load

数值数据的输出格式 MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。 在一般情况下,MATLAB内部每一个数值数据元素都是用双精度数来表示和存储的。 数据输出时用户可以用format命令设置或改变数据输出格式。format 命令的格式为: format格式符 其中格式符决定数据的输出格式 help format

2.2 MATLAB数值矩阵 2.2.1 矩阵的建立 1.直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

Matlab界面、矩阵操作

科学计算与MATLAB语言

教学内容 第1讲介绍MATLAB概述与运算基础第2讲介绍MATLAB程序设计 第3讲MATLAB文件操作 第4讲绘图形功能 第5讲线形代数中的数值计算问题 第6讲数据处理方法与多项式 第7讲MATLAB符号计算 第8讲MATLAB的图形用户界面设计

第一讲MATLAB概述与运算基础MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。

在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。 MATLAB: 是英文MATrix LABorotory(矩阵实验室) 的缩写。

一. MATLAB特点:

1. 数值计算和符号计算功能 MATLAB的数值计算功能包括:矩阵运算、多项式和有 理分式运算、数据统计分析、数值积分、优化处理等。符 号计算将得到问题的解析解。 2.MATLAB语言 MATLAB除了命令行的交互式操作以外,还可以程序方式 工作。使用MATLAB可以很容易地实现C或FORTRAN语言的几乎全部功能,包括Windows图形用户界面的设计。 3.图形功能 MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控制等等。

matlab中的矩阵的基本运算命令

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

第2章--MATLAB数据及其运算-习题答案教学内容

第2章--M A T L A B数据及其运算-习题答案

第2章 MATLAB数据及其运算 习题2 一、选择题 1.下列可作为MATLAB合法变量名的是()。D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。C A.+10 B.1.2e-5 C.2e D.2i 3.使用语句t=0:7生成的是()个元素的向量。A A.8 B.7 C.6 D.5 4.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。B A.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指()。D A.所有元素 B.第一行元素 C.第三行元素 D.第三列元素 6.已知a为3×3矩阵,则运行a (1)=[]后()。A A.a变成行向量 B.a变为2行2列 C.a变为3行2列 D.a变为2行3列 7.在命令行窗口输入下列命令后,x的值是()。B >> clear >> x=i*j A.不确定 B.-1 C.1 D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。D A.34 B.354 C.453 D.43 9.下列语句中错误的是()。B A.x==y==3 B.x=y=3 C.x=y==3 D.y=3,x=y 10.find(1:2:20>15)的结果是()。C A.19 20 B.17 19 C.9 10 D.8 9 11.输入字符串时,要用()将字符括起来。C A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。A A.9 B.11 C.7 D.18

matlab矩阵基本知识

matlab矩阵基本知识 第一部分:矩阵基本知识(只作基本介绍,详细说明请参考Matlab帮助文档) 矩阵是进行数据处理和运算的基本元素。在MATLAB中 a、通常意义上的数量(标量)可看成是”1*1″的矩阵; b、n维矢量可看成是”n*1″的矩阵; c、多项式可由它的系数矩阵完全确定。 一、矩阵的创建 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 下面介绍四种矩阵的创建方法: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。可以看出来linspace(a,b,n)与a:(b-a)/(n-1):b等价。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的拆分 1.矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。 2.矩阵拆分 利用冒号表达式获得子矩阵: (1) A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示

实验二MATLAB矩阵分析和处理

实验二 MATLAB 矩阵分析和处理 一、实验目的 1.掌握生成特殊矩阵的方法。 2.掌握矩阵分析的方法。 4.用矩阵求逆法解线性方程组。 二、实验内容 1.设有分块矩阵?? ????=????22322333S O R E A ,其中E,R,O,S 分别为单位矩阵、随机矩阵、零矩阵和对角矩阵,试通过数值计算验证??????+=22S O RS R E A 。 解: >> E=eye(3); >> R=rand(3,2); >> O=zeros(2,3); >> S=diag(1:2); >> A=[E R;O S]; A = 1.0000 0 0 0.9501 0.4860 0 1.0000 0 0.2311 0.8913 0 0 1.0000 0.6068 0.7621 0 0 0 1.0000 0 0 0 0 0 2.0000 >> A^2 ans = 1.0000 0 0 1.9003 1.4579

0 1.0000 0 0.4623 2.6739 0 0 1.0000 1.2137 2.2863 0 0 0 1.0000 0 0 0 0 0 4.0000 >> [E R+R*S;O S^2] ans = 1.0000 0 0 1.9003 1.4579 0 1.0000 0 0.4623 2.6739 0 0 1.0000 1.2137 2.2863 0 0 0 1.0000 0 0 0 0 0 4.0000 所以?? ????+=22S O RS R E A . 2.产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,求其行列式的值Hh 和Hp 以及他们的条件数Th 和Tp ,判断哪个矩阵性能更好,为什么? 解:H=hilb(5) H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 >> P=pascal(5) P =

常用MATLAB矩阵处理

>> x=zeros(3,4) x = 0 0 0 0 0 0 0 0 0 0 0 0 >> x=ones(3,4) x = 1 1 1 1 1 1 1 1 1 1 1 1 >> x=eye(3,4) x = 1 0 0 0 0 1 0 0 0 0 1 0 >> x=rand(3,4) x = 0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919 >> x=randn(3,4) x = -0.4326 0.2877 1.1892 0.1746 -1.6656 -1.1465 -0.0376 -0.1867 0.1253 1.1909 0.3273 0.7258 >> magic(3) ans = 8 1 6 3 5 7 4 9 2 >> a=[1 2 3]

a = 1 2 3 >> diag(a) ans = 1 0 0 0 2 0 0 0 3 >> diag(a -1) ans = 0 0 0 0 1 0 0 0 2 >> h1=hilb(2) h1 = 1.0000 0.5000 0.5000 0.3333 >> h2=invhilb(2) h2 = 4 -6 -6 12 >> inv(h1) ans = 4.0000 -6.0000 -6.0000 12.0000 拼接矩阵: ①水平方向拼接 >> a=magic(3) a = 8 1 6 3 5 7 4 9 2

>> b=eye(3) b = 1 0 0 0 1 0 0 0 1 >> c=[a b] c = 8 1 6 1 0 0 3 5 7 0 1 0 4 9 2 0 0 1 ②垂直方向拼接 >> d=[a;b] d = 8 1 6 3 5 7 4 9 2 1 0 0 0 1 0 0 0 1 拼接函数: 1)Cat函数 C=cat(dim,A,B); Dim= 1 垂直方向 2 水平方向 3 生成三维数组 >> a=[1,5,9;3,5,7;10,2,8]; >> b=magic(3); >> c1=cat(2,a,b) c1 = 1 5 9 8 1 6 3 5 7 3 5 7 10 2 8 4 9 2 >> c2=cat(1,a,b)

实验 二 MATLAB矩阵分析与处理

实验二 MATLAB 矩阵分析与处理 一、实验目的 1.掌握生成特殊矩阵的方法; 2.掌握矩阵分析的方法; 3.用矩阵求逆法解线性方程组。 二、实验内容 (1)设有分块矩阵33 322322E R A O S ??????=???? ,其中E 、R 、O 、S 分别为单位矩阵、随即矩阵、零矩阵和对角阵,试通过数值计算验证22E R R S A O S +??=???? 。 解:E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([2,3]); A=[E,R;O,S]; A^2 B=[E,(R+R*S);O,S^2] ans = Columns 1 through 4 1.0000 0 0 2.4442 0 1.0000 0 2.7174 0 0 1.0000 0.3810 0 0 0 4.0000 0 0 0 0 Column 5 3.6535 2.5294 0.3902 9.0000 B =

Columns 1 through 4 1.0000 0 0 2.4442 0 1.0000 0 2.7174 0 0 1.0000 0.3810 0 0 0 4.0000 0 0 0 0 Column 5 3.6535 2.5294 0.3902 9.0000 (2).产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好,为什么? 解:H=hilb(5) P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P) H = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 P = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70 Hh = 3.7493e-012 Hp =

matlab矩阵的表示和简单操作

matlab矩阵的表示和简单操作 一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n 的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。

实验二matlab矩阵的初等运算及其答案

百度文库- 让每个人平等地提升自我 实验二 Matlab矩阵的初等运算 实验目的:掌握Matlab的运算方法 实验内容: 2.1 在Matlab命令窗口输入: H1=ones(3,2) H2=zeros(2,3) H3=eye(4) 观察以上各输入结果,并在每式的后面标注其含义。 >> format compact >> H1=ones(3,2),disp('3行2列的全1矩阵') H1 = 1 1 1 1 1 1 3行2列的全1矩阵 >> H2=zeros(2,3),disp('2行3列的全零矩阵') H2 = 0 0 0 0 0 0 2行3列的全零矩阵 >> H3=eye(4),disp('4阶的单位矩阵') H3 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 4阶的单位矩阵 2.2 已知 123 456 ?? =?? ?? Q,[] 789 = P, 1 ?? =?? ?? R,3 = S,试把这四个矩阵组合 为一个大矩阵,看看有几种组合方式?8 >> format compact >> Q=[1 2 3;4 5 6];P=[7 8 9];R=[1;0]; S=3; >> [Q,R;P,S] ans = 1 2 3 1 4 5 6 0 7 8 9 3 >> [R,Q;P,S] ans = 1 1 2 3 0 4 5 6 7 8 9 3 >> [Q,R;S,P] ans = 1 2 3 1 4 5 6 0 3 7 8 9 >> [R,Q;S,P] ans = 1 1 2 3 0 4 5 6 3 7 8 9 >> [S,P;R,Q] ans = 3 7 8 9 1 1 2 3 0 4 5 6 >> [S,P;Q,R] ans = 3 7 8 9 1 2 3 1 4 5 6 0 >> [P,S;R,Q] ans = 7 8 9 3 1 1 2 3 0 4 5 6 >> [P,S;Q,R] ans = 7 8 9 3 1 2 3 1 4 5 6 0

MATLAB矩阵及其运算函数表

MATLAB 矩阵及其运算函数表 函数名函数功能 abs( ) 绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double( ) char( ) 可以把ASCII码数值矩阵转换为字符串矩阵 fix( ) 向零方向取整 floor( ) 不大于自变量的最大整数 ceil( ) 不小于自变量的最小整数 round( ) 四舍五入到最邻近的整数 rem(x,y) 求余函数 mod(x,y) % exp( ) 指数函数 [ ] 空操作符 format 格式符设置或改变数据输出格式 (其中格式符决定数据的输出格式) e1:e2:e3 冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n) 产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j) 表示取A矩阵的第j列全部元素 A(i,:) 表示A矩阵第i行的全部元素 A(i,j) 表示取A矩阵第i行、第j列的元素 A(i:i+m,:) 表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m) 表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m) 表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵(幺矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A)) 建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n) 生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V) 生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n) 生成希尔伯特矩阵 invhilb(n) 求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y) 生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

实验二Matlab矩阵的初等运算与其答案

实验二 Matlab矩阵的初等运算实验目的:掌握Matlab的运算方法 实验内容: 在Matlab命令窗口输入: H1=ones(3,2) H2=zeros(2,3) H3=eye(4) 观察以上各输入结果,并在每式的后面标注其含义。 >> format compact >> H1=ones(3,2),disp('3行2列的全1矩阵') H1 = 1 1 1 1 1 1 3行2列的全1矩阵 >> H2=zeros(2,3),disp('2行3列的全零矩阵') H2 = 0 0 0 0 0 0 2行3列的全零矩阵 >> H3=eye(4),disp('4阶的单位矩阵') H3 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 4阶的单位矩阵 已知 123 456 ?? =?? ?? Q,[] 789 = P, 1 ?? =?? ?? R,3 = S,试把这四个矩阵组合为 一个大矩阵,看看有几种组合方式?8 >> format compact >> Q=[1 2 3;4 5 6];P=[7 8 9];R=[1;0]; S=3; >> [Q,R;P,S] ans = 1 2 3 1 4 5 6 0 7 8 9 3 >> [R,Q;P,S] ans = 1 1 2 3 0 4 5 6 7 8 9 3 >> [Q,R;S,P] ans = 1 2 3 1 4 5 6 0 3 7 8 9 >> [R,Q;S,P] ans = 1 1 2 3 0 4 5 6 3 7 8 9 >> [S,P;R,Q] ans = 3 7 8 9 1 1 2 3 0 4 5 6 >> [S,P;Q,R] ans = 3 7 8 9 1 2 3 1 4 5 6 0 >> [P,S;R,Q] ans = 7 8 9 3 1 1 2 3 0 4 5 6 >> [P,S;Q,R] ans = 7 8 9 3

实验二matlab矩阵分析与处理

《MATLAB及应用A》第二次上机作业 一、一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落下时共经过多少米?第10次反弹多高? MATLAB源程序: MATLAB运行结果: 二、有如下一段MATLAB程序,请解释说明每个语句的功能,必要时用数学表达式(不是在MATLAB中的输入形式);并给出y1、y2、y3的值(可从MATLAB中复制)。 MATLAB源程序: x=linspace(0,6); y1=sin(2*x); y2=sin(x.^2); y3=(sin(x)).^2; 各条命令语句的功能如下: y1、y2、y3的值分别为: 三、教材第55页习题三,第3题。 MATLAB源程序: MATLAB运行结果: 四、选择题 (1) i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后,a, b, c的值分别是多少?() (A) a=4, b=4, c=2.0000i (B) a=4, b=2.0000i, c=2.0000i (C) a=2.0000i, b=4, c=2.0000i (D) a=2.0000i, b=2.0000i, c=2.0000i (2) 求解方程x4-4x3+12x-9 = 0 的所有解,其结果为() (A) 1.0000, 3.0000, 1.7321, -1.7321 (B) 1.0000, 3.0000, 1.7321i, -1.7321i (C) 1.0000i, 3.0000i, 1.7321, -1.7321 (D) -3.000-0i, 3.0000i, 1.7321, -1.7321 五、求[100,1000]之间的全部素数(选做)。 MATLAB源程序: MATLAB运行结果:

MATLAB实验二-矩阵基本运算(一)答案

实验一 矩阵基本运算(一) (1)设A 和B 是两个同维同大小的矩阵,问: 1)A*B 和A.*B 的值是否相等? ????? ?? =763514432A ???? ? ??=94 525 313 4B A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A*B, A.*B ans = 37 37 44 44 37 51 65 67 78 ans = 8 9 4 12 5 10 15 24 63 2)A./B 和B.\A 的值是否相等? A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A./B, B./A

ans = 0.5000 1.0000 4.0000 1.3333 0.2000 2.5000 0.6000 1.5000 0.7778 ans = 2.0000 1.0000 0.2500 0.7500 5.0000 0.4000 1.6667 0.6667 1.2857 3)A/B和B\A的值是否相等? A=[2 3 4;4 1 5;3 6 7]; B=[4 3 1;3 5 2;5 4 9]; A/B, B/A ans = -0.3452 0.5119 0.3690 0.7857 -0.7857 0.6429 -0.9762 1.3095 0.5952 ans = 110.0000 -15.0000 -52.0000

92.0000 -13.0000 -43.0000 -22.0000 4.0000 11.0000 4)A/B和B\A所代表的数学含义是什么? 解: A/B是B*A的逆矩阵 B\A是B*A的逆矩阵 (2)写出完成下列操作的命令。 1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。 A=[0.9501 0.4565 0.9218 0.4103 0.1389 0.0153 0.2311 0.0185 0.7382 0.8936 0.2028 0.7468 0.6068 0.8214 0.1763 0.0579 0.1987 0.4451 0.4860 0.4447 0.4057 0.3529 0.6038 0.9318 0.8913 0.6154 0.9355 0.8132 0.2722 0.4660 0.7621 0.7919 0.9169 0.0099 0.1988 0.4186] B=A(2:5,[1,3,5]) A = 0.9501 0.4565 0.9218 0.4103 0.1389 0.0153 0.2311 0.0185 0.7382 0.8936 0.2028 0.7468 0.6068 0.8214 0.1763 0.0579 0.1987 0.4451 0.4860 0.4447 0.4057 0.3529 0.6038 0.9318 0.8913 0.6154 0.9355 0.8132 0.2722 0.4660 0.7621 0.7919 0.9169 0.0099 0.1988 0.4186 B = 0.2311 0.7382 0.2028 0.6068 0.1763 0.1987 0.4860 0.4057 0.6038 0.8913 0.9355 0.2722 2)删除矩阵A的第7号元素。 A=rand(6,6); >> A(7)=[inf] A = 0.8385 Inf 0.1730 0.1365 0.2844 0.5155

相关主题
文本预览
相关文档 最新文档