1.矩阵的创建

生成一个a行b列的矩阵。

  1. clear;clc
  2. A = [1,2,3;4,5,6;7,8,9]%创建矩阵,其中;为换行
  3. B = 2.6:2:11.2%通过冒号创建数组格式为初始值:步长:最大值
  4. C = linspace(1,3,7)%通过linspace创建一维矩阵,3为第一个元素,3为最后一个元素,7为元素的个数,n默认个数为100,的等差数列
  5. D = logspace(2,5,8)%10^210^5之间生成8个差值相等的数
  6. E = ones(2)%构建一个n*n1矩阵,ones(a,b,c,……)构建一个a*b*c1矩阵,ones(size(A))构建一个和矩阵A同样大小的1矩阵
  7. F = zeros(2)%构建一个N*n0矩阵,同ones
  8. G = eye(3)%构建一个n*n的单位矩阵,同ones
  9. H = magic(3)%构建一个魔方矩阵,每一行每一列之和相等
  10. I = rand(3)%构建一个n*n的矩阵,元素为0-1之间的随机数,同ones
  11. J = randn(3)%构建一个元素为零均值,单位方差的正态分布随机数,同ones

image.png

2.矩阵的操作

2.1矩阵的部分删除

  1. A = [1:3;4:6;7:9]%
  2. B = [A;10:12]%BA的基础上加了一行
  3. B(:,2) = []%删除掉了B的第二列

image.png

2.2矩阵元素修改

  1. clear;clc
  2. v1 = 1:3
  3. X1 = diag(v1,1)%将向量v放在方阵X1的主对角线往上一条,负数代表往下
  4. X2 = diag(v1)
  5. v3 = diag(X1,1)%代表取出X1的主对角线往上一条的对角线
  6. v4 = diag(X1)
  7. L = tril(X1,1)%取出X1的下三角部分,对角线为主对角线往上一条,其余为零
  8. M = triu(X1,1)%取出X1的上三角部分,对角线为主对角线往上一条,其余为零

image.png

2.3矩阵结构的修改

  1. clear;clc
  2. A = magic(3)
  3. B = reshape(A,9,1,1)%911分别为行数,列数,页数
  4. rot90(A)%逆时针旋转90
  5. rot90(A,2)%逆时针旋转90*2
  6. fliplr(A)%左右翻转矩阵,flipud上下翻转矩阵

image.pngimage.png

2.4矩阵元素的数据变换

  1. clear;clc
  2. A = rand(4)
  3. floor(A)%向下取整
  4. ceil(A)%向上取整
  5. round(A)%四舍五入取整
  6. fix(A)%按接近零的方向取整
  7. [n,d] = rat(A)% A=n./d
  8. B = rem(A,2)%表示将矩阵除以模数2的余数

image.pngimage.pngimage.png

2.5矩阵下标引用

  1. clear;clc
  2. A = magic(6)
  3. A(:)%将矩阵以列优先,合并成一个长的列向量
  4. A(2:3,3:6)%2-3行,3-6列的元素
  5. A([7:10,26:31])%A(:)中的第7-1026-31个元素
  6. %matlab中的:可以表示所有,也可以表示到的意思

image.pngimage.png
单下标,为A(:)中的顺序的编号
双下标为行列值
内部函数sub2ind可以完成两者间的转换

2.6矩阵信息的获取

  1. clear;clc
  2. A = zeros(3,4)
  3. isempty(A)%是否为空矩阵
  4. isscalar(A)%是否为标量
  5. isvector(A)%判断矩阵A是否为向量
  6. issparse(A)%是否为稀疏矩阵
  7. B = eye(5,3)
  8. [m,n] = size(B)%获取矩阵在各维的长度
  9. c = numel(B)%获得矩阵元素的个数

image.pngimage.png

3.矩阵运算

未完成。。。。。。