• MATLAB二维数组(矩阵)的创建

    MATLAB 二维数组与矩阵之间有很大的相关性,二维数组是由实数或复数排列成矩形构成的,而且从数据结构上看,矩阵和二维数组没有区别。

    本节将讲解 MATLAB 二维数组的两种创建方式。

    直接输入

    矩阵的生成可以通过在方括号[ ]中输入元素实现,不同行之间要用分号;隔开,不同列用空格或者逗号,隔开。

    例如,生成一个 2×3 的矩阵:

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

    可以用冒号快速建立矩阵,步长在默认的情况下为 1,也可以自定义步长。具体程序如下:

    >> A=[1:3; 4:6]
    A =
        1     2     3
        4     5     6
    
    >> B=[2:3:11; 4:2:10]
    B =
        2     5     8    11
        4     6     8    10

    使用矩阵生成函数

    MATLAB 中提供了很多用于生成矩阵的函数,请看下表。

    MATLAB 常用的矩阵生成函数
    矩阵 函数 矩阵 函数
    全零矩阵 zeros() 友矩阵 compan()
    单位矩阵 eye() Hadamard 矩阵 hadamard()
    全 1 矩阵 ones() Hankel 矩阵 hankel()
    均匀分布随机矩阵 rand() Hilbert 矩阵 hilb()
    正态分布随机矩阵 randn() 逆 Hilbert 矩阵 invhilb()
    产生线性等分向量 linspace() Magic 矩阵 magic()
    产生对数等分向量 logspace() Pascal 矩阵 pascal()
    Wilkinson 特征值测试矩阵 wilkinson() 拓普利兹矩阵 toeplitz()

    请看下面的例子:

    >> ones(2,4)    %产生(2x4)全 1 数组
    ans =
         1     1     1     1
         1     1     1     1
    >> randn('state',0)    %把正态随机数发生器置 0
    >> randn(2,3)    %产生正态随机阵
    ans =
       -0.4326    0.1253   -1.1465
       -1.6656    0.2877    1.1909
    >> D=eye(3)    %产生 3x3 的单位阵
    D =
         1     0     0
         0     1     0
         0     0     1
    >> diag(D)    %取 D 阵的对角元
    ans =
         1
         1
         1
    >> diag(diag(D))    %外 diag 利用一维数组生成对角阵
    ans =
         1     0     0
         0     1     0
         0     0     1
    >> randsrc(3,20,[-3,-1,1,3],1)    %在 [-3,-1,1,3] 上产生 3x20 均布随机数组,随机发生器的状态设置为 1
    ans =
      1 至 10 列
        -1    -1    -3     1    -3     1    -3     3     3    -3
         1    -3    -1    -1     3    -1    -3    -1     3    -3
        -3    -3    -1     1    -3     1     3     1    -3     3
      11 至 20 列
        -3     1     1     3    -1    -1    -1     1    -1    -3
        -1     1     3     3     3     3    -3    -3    -3     1
         3    -1    -3     1    -3    -1    -3    -1     1     1

更多...

加载中...