初识MATLAB之矩阵

初识MATLAB之矩阵

  MATLAB中矩阵是一个很重要的元素,运用的次数很频繁。这次从创建,改变结构,下标的使用和获取矩阵信息来简单介绍有关矩阵的函数。

1. 构建矩阵

  学过矩阵的都知道矩阵有一些特殊矩阵,例如0矩阵,1矩阵和单位阵等。那么MATLAB是可以使用函数来直接构建一些特殊矩阵的。

1.1 直接赋值构建矩阵:

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

  a =

    1 2 3
    4 5 6

  >> a=[1 2 3;4 5 6]

  a =

    1 2 3
    4 5 6

1.2 构建特殊矩阵

  这里列举三种0矩阵(zeros函数),1矩阵(ones函数)和单位阵(eye函数):

  >> z=ones(3)

  z =

  1 1 1
  1 1 1
  1 1 1

  >> z=zeros(3)

  z =

  0 0 0
  0 0 0
  0 0 0

  >> z=eye(3)

  z =

  1 0 0
  0 1 0
  0 0 1

2. 改变矩阵结构

  通过旋转,改变矩阵维度和删除矩阵元素来改变矩阵的大小与结构。下面举例4个函数:

2.1 fliplr(a)函数

  对矩阵a每一行均进行逆序排列。

  >> a=[1 2 3;4 5 6],b=fliplr(a)

  a =

  1 2 3
  4 5 6

  b =

  3 2 1
  6 5 4

2.2 rot90(a)函数

  生成一个有矩阵a逆时针旋转90的矩阵。

  >> a=[1 2 3;4 5 6],b=rot90(a)

  a =

  1 2 3
  4 5 6

  b =

  3 6
  2 5
  1 4

2.3 repmat(a,[m n])函数

  创建一个有矩阵a为子矩阵的的m*n维的新矩阵。

  >> a=[1 2 3;4 5 6],b=repmat(a,[2,2])

  a =

  1 2 3
  4 5 6

  b =

  1 2 3 1 2 3
  4 5 6 4 5 6
  1 2 3 1 2 3
  4 5 6 4 5 6

2.4 magic(n)函数

  构建一个n*n的矩阵,其每一行,每一列的元素之和都相等。

  >> a=magic(3)

  a =

  8 1 6
  3 5 7
  4 9 2

3. 矩阵下标的使用

  矩阵下标的使用方式有许多,这里就不一一写出。举例4种方式。

3.1 a(:)

  将a矩阵每列合并成一个长的列向量。其中()'是将矩阵装置。

  >> a=magic(3),b=(a(:))'

  a =

  8 1 6
  3 5 7
  4 9 2

  b =

  8 3 4 1 5 9 6 7 2

3.2 a(:,i)

  返回a矩阵第i列的列向量。其中()'是将矩阵装置。

  >> a=magic(3),b=(a(:,1))'

  a =

  8 1 6
  3 5 7
  4 9 2

  b =

  8 3 4

3.3 a(:,j:k)

  返回a矩阵由第j列到第k列组成的矩阵。

  >> a=magic(3),b=(a(:,1:2))'

  a =

  8 1 6
  3 5 7
  4 9 2

  b =

  8 3 4
  1 5 9

3.4 a(i:j:k)

  返回由a(:)中选取第i个元素开始,每隔j个元素的元素,直到第k个元素。

  >> a=magic(3),b=a(1:2:9)

  a =

  8 1 6
  3 5 7
  4 9 2


  b =

  8 4 5 6 2

4. 获取矩阵信息

  这里列举4个矩阵信息的获取。

4.1 isempty(a)函数

  判断矩阵a是否为空。

  >> a=magic(3),b=isempty(a)

  a =

  8 1 6
  3 5 7
  4 9 2

  b =

  0

4.2 ndims(a)函数

  获取矩阵z维数。

  >> a=magic(3),b=ndims(a)

  a =

  8 1 6
  3 5 7
  4 9 2

  b =

  2

4.3 length(a)函数

获取矩阵a的最长维长度。

>> a=magic(3),c=length(a)

  a =

  8 1 6
  3 5 7
  4 9 2

  c =

  3

4.4 numel(a)函数

  获取矩阵元素个数。

  >> a=magic(3),d=numel(a)

  a =

  8 1 6
  3 5 7
  4 9 2

  d =

  9

总结:将之前代码都是截图换成了文字的复制与粘贴。

猜你喜欢

转载自www.cnblogs.com/bky-lx/p/10526997.html