1.数组的表示,冒号的用法
>> x=1:3:100 x = 1 至 23 列 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 24 至 34 列 70 73 76 79 82 85 88 91 94 97 100 >> A(1,:)=1:5 A = 1 2 3 4 5 >> A(2,:)=6:10 A = 1 2 3 4 5 6 7 8 9 10 >> A(3,:)=11:15 A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 >> s=0; >> for i=1:100 s=s+i; end,s s = 50502.线性间隔向量
>> x=linspace(1,5,20) x = 1 至 13 列 1.0000 1.2105 1.4211 1.6316 1.8421 2.0526 2.2632 2.4737 2.6842 2.8947 3.1053 3.3158 3.5263 14 至 20 列 3.7368 3.9474 4.1579 4.3684 4.5789 4.7895 5.00003.对数化间隔向量
>> x=logspace(1,2,12) x = 10.0000 12.3285 15.1991 18.7382 23.1013 28.4804 35.1119 43.2876 53.3670 65.7933 81.1131 100.00004.显示格式的设置
>> format short >> pi ans = 3.1416 >> format long >> pi ans = 3.141592653589793 >> format rat >> pi ans = 355/1135.矩阵的加法与减法
>> A=[1,2,3;4,5,6;7,8,10] A = 1 2 3 4 5 6 7 8 10 >> B=[1,3,5;7,9,11;13,15,16] B = 1 3 5 7 9 11 13 15 16 >> B-A ans = 0 1 2 3 4 5 6 7 6 >> A+B ans = 2 5 8 11 14 17 20 23 266.数组的乘法与除法
>> A=[1 2 3;2 4 6;3 6 12] A = 1 2 3 2 4 6 3 6 12 >> B=[1 2 3] B = 1 2 3 >> B=[B;B;B] B = 1 2 3 1 2 3 1 2 3 >> A.*B %矩阵A、B的数组积为矩阵对应元素的相乘,它与矩阵乘法是不同的,注意在数组乘法的乘号*前加了句号“.” ans = 1 4 9 2 8 18 3 12 36 >> A*B %矩阵A、B的积 ans = 6 12 18 12 24 36 21 42 63 >> A./B ans = 1 1 1 2 2 2 3 3 4 >> A/B 警告: 矩阵为奇异工作精度。 ans = 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/07.矩阵的乘法
>> A=[1 2 3;4 5 6;7 8 10] A = 1 2 3 4 5 6 7 8 10 >> B=[1 3 5;7 9 11;13 15 17] B = 1 3 5 7 9 11 13 15 17 >> C=A*B C = 54 66 78 117 147 177 193 243 2938.矩阵的左除
>> A=[1 2 3;4 5 6;7 8 10] A = 1 2 3 4 5 6 7 8 10 >> C=[54 66 75;117 147 171;193 243 283] C = 54 66 75 117 147 171 193 243 283 >> A\C ans = 1 3 5 7 9 11 13 15 169.矩阵的右除
>> C=[54 66 75;117 147 171;193 243 283] C = 54 66 75 117 147 171 193 243 283 >> B=[1 3 5;7 9 11;13 15 16] B = 1 3 5 7 9 11 13 15 16 >> C/B ans = 1 2 3 4 5 6 7 8 1010.方阵的行列式
>> A=[1 2 3;4 5 6;7 8 10] A = 1 2 3 4 5 6 7 8 10 >> det(A) ans = -311.矩阵的转置
>> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A' ans = 1 4 7 2 5 8 3 6 912.单位矩阵
>> eye(4) ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 113.全1矩阵
>> ones(4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 114.零矩阵
>> zeros(4) ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0教材里这个地方有错误,若为方阵,则以**zeros(n)**表示。
15.魔方矩阵
>> A=magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> sum(A,1) %检查A的各列元素之和 ans = 34 34 34 34 >> sum(A,2) %检查A的各行元素之和 ans = 34 34 34 34 >> trace(A) %检查A的主对角线元素之和 ans = 34 >> trace(fliplr(A)) %检查A的副对角线元素之和 ans = 3416.Pascal矩阵 对Cholesky的解释:X矩阵是对称正定的,则Cholesky分解将矩阵分解成一个下三角形矩阵(R’)和上三角形矩阵( R )的乘积,X=R’ R。
>> pascal(5) ans = 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 >> A1=pascal(4,1) A1 = 1 0 0 0 1 -1 0 0 1 -2 1 0 1 -3 3 -1 >> A2=pascal(4,2) A2 = -1 -1 -1 -1 3 2 1 0 -3 -1 0 0 1 0 0 0 >> B=-fliplr(A1') B = -1 -1 -1 -1 3 2 1 0 -3 -1 0 0 1 0 0 017.Hilbert矩阵
>> hilb(4) ans = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7 >> format short >> A=hilb(4) A = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.142918.均匀分布的随机矩阵
>> A1=rand(4) A1 = 0.8147 0.6324 0.9575 0.9572 0.9058 0.0975 0.9649 0.4854 0.1270 0.2785 0.1576 0.8003 0.9134 0.5469 0.9706 0.1419 >> A2=rand(4) A2 = 0.4218 0.6557 0.6787 0.6555 0.9157 0.0357 0.7577 0.1712 0.7922 0.8491 0.7431 0.7060 0.9595 0.9340 0.3922 0.031819.正态分布的随机矩阵
>> randn(4) ans = -1.0689 0.3252 -0.1022 -0.8649 -0.8095 -0.7549 -0.2414 -0.0301 -2.9443 1.3703 0.3192 -0.1649 1.4384 -1.7115 0.3129 0.627720.矩阵的大小
>> A=[1 1 1 1 1;1 2 3 4 5;1 3 6 10 15] A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 >> d=size(A) d = 3 5 >> A(:,:,1)=magic(3),A(:,:,2)=pascal(3),A(:,:,3)=zeros(3),A(:,:,4)=ones(3) A = 8 1 6 3 5 7 4 9 2 A(:,:,1) = 8 1 6 3 5 7 4 9 2 A(:,:,2) = 1 1 1 1 2 3 1 3 6 A(:,:,1) = 8 1 6 3 5 7 4 9 2 A(:,:,2) = 1 1 1 1 2 3 1 3 6 A(:,:,3) = 0 0 0 0 0 0 0 0 0 A(:,:,1) = 8 1 6 3 5 7 4 9 2 A(:,:,2) = 1 1 1 1 2 3 1 3 6 A(:,:,3) = 0 0 0 0 0 0 0 0 0 A(:,:,4) = 1 1 1 1 1 1 1 1 1 >> size(A) ans = 3 3 421.矩阵的秩
>> A=[1 2 3;4 5 6;7 8 10] A = 1 2 3 4 5 6 7 8 10 >> rank(A) ans = 322.向量的范数
>> v=[1 2 3 4] v = 1 2 3 4 >> norm(v,1) ans = 10 >> norm(v,2) ans = 5.4772 >> norm(v,+inf) ans = 4 >> norm(v,-inf) ans = 123.矩阵的范数
>> A=[1 2 3 4;2 3 5 8;1 3 5 7;3 4 7 11] A = 1 2 3 4 2 3 5 8 1 3 5 7 3 4 7 11 >> A1=norm(A,1) A1 = 30 >> max(sum(A)) ans = 30 >> Ai=norm(A,inf) Ai = 25 >> max(sum(A')) ans = 25 >> A2=norm(A,2) A2 = 20.2435 >> max(svd(A)) ans = 20.2435 >> Af=norm(A,'fro') Af = 20.2731 >> sum(abs(A(1:16)).^2).^(1/2) ans = 20.2731 >> sqrt(sum(diag(A'*A))) ans = 20.273124.矩阵的条件数
>> A=[1 3 4 5;1 1 3 4;1 1 1 3;1 1 1 1] A = 1 3 4 5 1 1 3 4 1 1 1 3 1 1 1 1 >> inv(A) ans = -0.5000 0.2500 0.1250 1.1250 0.5000 -0.7500 0.1250 0.1250 0 0.5000 -0.7500 0.2500 0 0 0.5000 -0.5000 >> C1=norm(A)*norm(ans) C1 = 13.9424 >> C=cond(A) C = 13.9424 >> s=svd(A) s = 9.5410 1.2253 1.0000 0.6843 >> C2=max(s)/min(s) C2 = 13.942425.矩阵的奇异值和奇异值分解
>> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> svd(A) ans = 16.8481 1.0684 0.0000 >> [u,s,a]=svd(A) u = -0.2148 0.8872 0.4082 -0.5206 0.2496 -0.8165 -0.8263 -0.3879 0.4082 s = 16.8481 0 0 0 1.0684 0 0 0 0.0000 a = -0.4797 -0.7767 0.4082 -0.5724 -0.0757 -0.8165 -0.6651 0.6253 0.4082 >> iu=inv(u) %核对矩阵u是否为酉矩阵 iu = -0.2148 -0.5206 -0.8263 0.8872 0.2496 -0.3879 0.4082 -0.8165 0.4082 >> u' ans = -0.2148 -0.5206 -0.8263 0.8872 0.2496 -0.3879 0.4082 -0.8165 0.4082 >> iv=inv(a) %核对矩阵v是否为酉矩阵 iv = -0.4797 -0.5724 -0.6651 -0.7767 -0.0757 0.6253 0.4082 -0.8165 0.4082 >> a' ans = -0.4797 -0.5724 -0.6651 -0.7767 -0.0757 0.6253 0.4082 -0.8165 0.408226.矩阵的特征值和特征向量
>> A=[-6 -11 -6;1 0 0;0 1 0] A = -6 -11 -6 1 0 0 0 1 0 >> syms lambda >> det(A-lambda*eye(3)) ans = - lambda^3 - 6*lambda^2 - 11*lambda - 6 >> P=sym2poly(ans) P = -1 -6 -11 -6 >> roots(P) ans = -3.0000 -2.0000 -1.0000 >> d=eig(A) %eig为matlab求解特征值函数 d = -3.0000 -2.0000 -1.000027.矩阵的左右翻转、上下翻转和矩阵的逆时针旋转90°操作
>> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> fliplr(A) ans = 6 1 8 7 5 3 2 9 4 >> A=pascal(3) A = 1 1 1 1 2 3 1 3 6 >> flipud(A) ans = 1 3 6 1 2 3 1 1 1 >> A=[1 2 3 4;5 6 7 8] A = 1 2 3 4 5 6 7 8 >> rot90(A) ans = 4 8 3 7 2 6 1 528.对角矩阵
>> v=[1 2 3 4] v = 1 2 3 4 >> diag(v) ans = 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 >> diag(v,1) ans = 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 >> diag(v,-1) ans = 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 >> u=[2 3 5 8 11]; >> X=vander(u) X = 16 8 4 2 1 81 27 9 3 1 625 125 25 5 1 4096 512 64 8 1 14641 1331 121 11 1 >> v=diag(X)' v = 16 27 25 8 1 >> v1=diag(X,1)' v1 = 8 9 5 1 >> vn1=diag(X,-1)' vn1 = 81 125 64 1129.矩阵的重组1
>> A=[1 2 3 4] A = 1 2 3 4 >> B=pascal(4) B = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 >> B(1,:)=A B = 1 2 3 4 1 2 3 4 1 3 6 10 1 4 10 20 >> C=pascal(4) C = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 >> C(:,1)=A' C = 1 1 1 1 2 2 3 4 3 3 6 10 4 4 10 2030.矩阵的重组2
>> A=magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> c=A(1,:) c = 16 2 3 13 >> A(1,:)=A(4,:) A = 4 14 15 1 5 11 10 8 9 7 6 12 4 14 15 1 >> A(4,:)=c A = 4 14 15 1 5 11 10 8 9 7 6 12 16 2 3 1331.矩阵的重组3
>> A=magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> B=A(1:4,1:4) B = 17 24 1 8 23 5 7 14 4 6 13 20 10 12 19 21 >> A=[1 3 5 7;2 3 5 8;2 4 6 8;3 4 7 11] A = 1 3 5 7 2 3 5 8 2 4 6 8 3 4 7 11 >> A(2,:)=[],A(:,2)=[] A = 1 3 5 7 2 4 6 8 3 4 7 11 A = 1 5 7 2 6 8 3 7 1132.矩阵的重组4
>> A=magic(3) A = 8 1 6 3 5 7 4 9 2 >> B=A(:)' B = 8 3 4 1 5 9 6 7 233.矩阵的重组5
>> format rat >> A=hilb(4) A = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7 >> B=reshape(A,2,8) B = 1 1/3 1/2 1/4 1/3 1/5 1/4 1/6 1/2 1/4 1/3 1/5 1/4 1/6 1/5 1/7