当前位置:天才代写 > tutorial > Matlab教程 > Matlab数组

Matlab数组

2017-11-02 08:00 星期四 所属: Matlab教程 浏览:767


MATLAB中所有数据范例的所有变量都是多维数组。向量是一维数组,矩阵是二维数组。

我们前面已经接头和进修过向量和矩阵。 在本章中,将接头和进修多维数组。 然而,在此之前,让我们先进修一些非凡范例的数组。

MATLAB中的非凡数组

在本节中,我们将接头进修一些建设一些非凡数组的函数。对付这些函数,单个参数建设一个正方形数组,双参数建设矩形数组。

zeros()函数是用来建设一个全零的数组 –

譬喻 –

zeros(5)

执行上面示例代码,获得以下功效 –

Trial>> zeros(5)

ans =

     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

ones()函数建设一个所有元素为1的数组 –

譬喻 –

ones(4,3)

执行上面示例代码,获得以下功效 –

Trial>> ones(4,3)

ans =

     1     1     1
     1     1     1
     1     1     1
     1     1     1

eye()函数建设一个单元矩阵。

譬喻 –

eye(4)

执行上面示例代码,获得以下功效 –

Trial>> eye(4)

ans =

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

rand()函数在(0,1) – 上建设匀称漫衍的随机数的数组 –

譬喻 –

rand(3, 5)

执行上面示例代码,获得以下功效 –

Trial>> rand(3, 5)

ans =

    0.8147    0.9134    0.2785    0.9649    0.9572
    0.9058    0.6324    0.5469    0.1576    0.4854
    0.1270    0.0975    0.9575    0.9706    0.8003

魔方

魔方是一个平方,它发生沟通的和,它的元素被逐行,逐列可能对角线地添加时。

magic()函数建设一个把戏方阵。这需要一个参数,指定正方形的巨细。 参数必需是大于或便是3的标量。

magic(4)

执行上面示例代码,获得以下功效 –

Trial>> magic(4)

ans =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

多维数组

具有二维以上的数组在MATLAB中被称为多维数组。MATLAB中的多维数组是正常二维矩阵的扩展。

凡是要生成一个多维数组,首先建设一个二维数组然后再扩展它。

譬喻,让我们建设一个二维数组a

a = [7 9 5; 6 1 9; 4 3 2]

执行上面示例代码,获得以下功效 –

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

a =

     7     9     5
     6     1     9
     4     3     2

数组a3×3数组; 可以通过提供以下值来添加第三维:

a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]

执行上面示例代码,获得以下功效 –

a =

ans(:,:,1) =

   0   0   0
   0   0   0
   0   0   0

ans(:,:,2) =

   1   2   3
   4   5   6
   7   8   9

还可以利用ones()zeros()rand()函数来建设多维数组。

譬喻,

b = rand(4,3,2)

执行上面示例代码,获得以下功效 –

Trial>> b = rand(4,3,2)

b(:,:,1) =

    0.1419    0.9595    0.9340
    0.4218    0.6557    0.6787
    0.9157    0.0357    0.7577
    0.7922    0.8491    0.7431


b(:,:,2) =

    0.3922    0.0318    0.8235
    0.6555    0.2769    0.6948
    0.1712    0.0462    0.3171
    0.7060    0.0971    0.9502

也可以利用cat()函数来构建多维数组。它沿着指定的维度毗连数组列表 –

cat()函数的语法是 –

B = cat(dim, A1, A2...)

个中,

  • B是建设的新阵列
  • A1A2...是要毗连的数组
  • dim是毗连数组的巨细
  • 例子

    建设剧本文件并在个中键入以下代码 –

    a = [9 8 7; 6 5 4; 3 2 1];
    b = [1 2 3; 4 5 6; 7 8 9];
    c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
    

    #p#分页标题#e#

    执行上面示例代码,获得以下功效 –

    c(:,:,1) =
         9     8     7
         6     5     4
         3     2     1
    c(:,:,2) =
         1     2     3
         4     5     6
         7     8     9
    c(:,:,3) =
         2     3     1
         4     7     8
         3     9     0
    

    数组函数

    MATLAB提供以下函数来对数组内容举办排序,旋转,分列,从头成形或移位。

    函数 描写
    length 向量的巨细或数组的长度
    ndims 数组的维数
    numel 数组的元素数量
    size 数组的维度
    iscolumn 确定输入是否为列向量
    isempty 确定命组是否为空
    ismatrix 确定输入是否为矩阵
    isrow 确定输入是否为行向量
    isscalar 确定输入是否为标量
    isvector 确定输入是否为向量
    blkdiag 从输入参数结构块对角矩阵
    circshift 轮回移位
    ctranspose 复共轭转置
    diag 矩阵对角矩阵和对角线
    flipdim 沿着指定的尺寸翻转数组
    fliplr 从左到右翻转矩阵
    flipud 向下翻转矩阵
    ipermute 反转N-D阵列的置换维度
    permute 从头分列N-D数组的维度
    repmat 复制僻静铺数组
    reshape 重塑数组
    rot90 旋转矩阵90度
    shiftdim 移动维度
    issorted 确定配置元素是否按排序顺序
    sort 按升序或降序分列数组元素
    sortrows 按升序分列行
    squeeze 删除单例维度
    transpose 转置
    vectorize 向量化表达式

    例子

    以下的例子说明白上面提到的一些函数。

    长度,尺寸和元素数量:

    建设剧本文件并键入以下代码 –

    x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
    length(x)  % length of x vector
    y = rand(3, 4, 5, 2);
    ndims(y)    % no of dimensions in array y
    s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
    numel(s)   % no of elements in s
    

    运行文件时,显示以下功效 –

    ans =  8
    ans =  4
    ans =  23
    

    数组元素的轮回移位

    建设剧本文件并在个中键入以下代码 –

    a = [1 2 3; 4 5 6; 7 8 9]  % the original array a
    b = circshift(a,1)         %  circular shift first dimension values down by 1.
    c = circshift(a,[1 -1])    % circular shift first dimension values % down by 1 
                               % and second dimension values to the left % by 1.
    

    运行文件文件时,显示以下功效 –

    a =
         1     2     3
         4     5     6
         7     8     9
    
    b =
         7     8     9
         1     2     3
         4     5     6
    
    c =
         8     9     7
         2     3     1
         5     6     4
    

    排序数组

    建设剧本文件并在个中键入以下代码 –

    v = [ 23 45 12 9 5 0 19 17]  % horizontal vector
    sort(v)                      % sorting v
    m = [2 6 4; 5 3 9; 2 0 1]    % two dimensional array
    sort(m, 1)                   % sorting m along the row
    sort(m, 2)                   % sorting m along the column
    

    运行文件文件时,显示以下功效 –

    v =
        23    45    12     9     5     0    19    17
    ans =
         0     5     9    12    17    19    23    45
    m =
         2     6     4
         5     3     9
         2     0     1
    ans =
         2     0     1
         2     3     4
         5     6     9
    ans =
         2     4     6
         3     5     9
         0     1     2
    

    单位阵列

    单位格阵列是索引单位的数组,个中每个单位格可以存储差异维度和数据范例的数组。

    单位格函数用于建设单位格数组。单位格函数的语法是 –

    C = cell(dim)
    C = cell(dim1,...,dimN)
    D = cell(obj)
    

    #p#分页标题#e#

    个中,

  • C是单位阵列;
  • dim是一个整数或整数向量,它指定单位格数组C的维数;
  • dim1,...,dimN是指定C巨细的标量整数;
  • obj是以下之一:
  • Java数组或工具
  • 范例为System.StringSystem.Object的.NET数组
  • 示例

    建设剧本文件并在个中键入以下代码 –

    c = cell(2, 5);
    c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
    

    运行文件时,获得以下功效 –

    c = 
    {
      [1,1] = Red
      [2,1] =  1
      [1,2] = Blue
      [2,2] =  2
      [1,3] = Green
      [2,3] =  3
      [1,4] = Yellow
      [2,4] =  4
      [1,5] = White
      [2,5] =  5
    }
    

    会见单位格数组数据

    有两种要领来引用单位格数组的元素 –

  • 将第一个括号()中的索引困绕,以引用单位格集
  • 将大括号{}中的索引括起来,以引用单个单位格内的数据
  • 当将索引困绕在第一个括号中时,它指的是这组单位格。

    括号中的单位格数组索引是指单位格集。

    譬喻:

    c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
    c(1:2,1:2)
    

    运行文件时,获得以下功效 –

    ans = 
    {
      [1,1] = Red
      [2,1] =  1
      [1,2] = Blue
      [2,2] =  2
    }
    

    还可以通过用花括号索引来会见单位格的内容。

    譬喻 –

    c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
    c{1, 2:4}
    

    运行文件时,获得以下功效 –

    ans = Blue
    ans = Green
    ans = Yellow
    

     

      关键字:

    天才代写-代写联系方式