注:我的matlab版本为2016

代码中的注释仅为方便理解,实际操作中会导致报错

目录

 注:我的matlab版本为2016

1.1.2创建数组

1.空数组

2.一维数组

3.二维数组 

4.创建三维数组 

1.1.2创建数组

1.空数组

>>a=[]
a=
    []

2.一维数组

行向量:用空格或  " , '隔开,两者可混用

列向量:用  ; 分割

可用转置运算符(’)把行向量转换成列向量

>> A=[1 2,3]   #创建一维行向量(,与空格可混用)

A =                #输出

     1     2     3

>> B=[1;2;3]  #创建一维列向量

B =

     1
     2
     3

>> C=A'    #利用 ’创建列向量

C =

     1
     2
     3

 创建等差数组:

1. var =起始值 : 步长 :末值

注意:该方法可能取不到末值,最后一个元素与末值差值的绝对值小于等于步长

步长可省略,默认值为1

>> a = 1:4   

a =

     1     2     3     4

>> b = 1:2:4

b =

     1     3

2. 利用linspace函数

格式: Var = linspace(初始值,末值,元素个数)

元素个数可省略,默认为100

>> a=linspace(2,8,3)

a =

     2     5     8

创建等比数组: 利用logspace函数

格式:var = logspace(以10为底的初始值的对数, 以10为底的末值的对数,元素的个数)

>> a=logspace(0,log10(32),6)

a =

    1.0000    2.0000    4.0000    8.0000   16.0000   32.0000

3.二维数组 

不同行间用用分号隔开

注意:每行的元素数目应相同

 可用一维数组或内部函数(如linspace,logspace)创建

例:

a=logspace(0,log10(32),6)

a =

    1.0000    2.0000    4.0000    8.0000   16.0000   32.0000

>> b = [a;linspace(1,6,6);5,6,7,8,9,1]

b =

    1.0000    2.0000    4.0000    8.0000   16.0000   32.0000
    1.0000    2.0000    3.0000    4.0000    5.0000    6.0000
    5.0000    6.0000    7.0000    8.0000    9.0000    1.0000

4.创建三维数组 

1.使用下标创建三维数组

常识:二维数组第一维称为"行”,第二维称为“列”,第三维称为"页”

>> A(2,2,2)=1;
>> for i =1:2;    #i取1到2
for j =1:2;
for k =1:2;
A(i,j,k)=i+j+k;   #第k页的第i行第j列的值为 i+j+k
end
end
end
>> A(:,:,1)    #第一页

ans =

     3     4
     4     5

>> A(:,:,2)    #第二页

ans =

     4     5
     5     6

2.利用低维数组来创建高维数组 

>> D2=[1,2,3;4,5,6;7,8,9];
D3(:,:,1)=D2;  
D3(:,:,2)=2*D2;               #仅将对应位置的值*2
>> D3(:,:,3)=3*D2;
>> D3                         #输出D3

D3(:,:,1) =

     1     2     3
     4     5     6
     7     8     9


D3(:,:,2) =

     2     4     6
     8    10    12
    14    16    18


D3(:,:,3) =

     3     6     9
    12    15    18
    21    24    27

3.使用创建函数创建

(1)cat

格式:C=cat(dim,A1,A2,A3, ...)    

dim 为创建数组的维度,A1,A2,A3为各维度上的数组

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

     1     2     3
     4     5     6
     7     8     9


D3(:,:,2) =

     2     4     6
     8    10    12
    14    16    18


D3(:,:,3) =

     3     6     9
    12    15    18
    21    24    27


>> C=cat(3,D2,2*D2,3*D3)  #此处D3为页数为3的三维数组,故自动将其填充到C的后三页中

C(:,:,1) =

     1     2     3
     4     5     6
     7     8     9


C(:,:,2) =

     2     4     6
     8    10    12
    14    16    18


C(:,:,3) =

     3     6     9
    12    15    18
    21    24    27


C(:,:,4) =

     6    12    18
    24    30    36
    42    48    54


C(:,:,5) =

     9    18    27
    36    45    54
    63    72    81

2.reshape(重组数组)  可修改数组维度和数的排列

格式:B=reshape(A,[m n p...])   或 B=reshape(A,m,n,p...]) 

A表示复制的数组模块,[m n p...]表示该数组模块在各个维度上的复制个数,依次表示行数,列数,页数 

>> D2 =[1 2 3;4 5 6;7 8 9;10 11 12];
>> D3 = reshape(D2,[2 2 3]);
>>D3

D3(:,:,1) =

     1     7
     4    10


D3(:,:,2) =

     2     8
     5    11


D3(:,:,3) =

     3     9
     6    12

由输出可知,读取数组中的数为一列一列从上到下读取的

注意,m*n*p的值表示新数组的元素个数,应与原有元素个数相同 

3.repmat函数

格式:B=repmat(A,[m n p...])   或 B=repmat(A,m,n,p...])

 A表示复制的数组模块,[m n p...]表示该数组模块在各个维度上的复制个数,依次表示行数,列数,页数

>> D2 =[1 2 3;4 5 6;7 8 9];
>> D3 =repmat(D2,2,3)

D3 =

     1     2     3     1     2     3     1     2     3
     4     5     6     4     5     6     4     5     6
     7     8     9     7     8     9     7     8     9
     1     2     3     1     2     3     1     2     3
     4     5     6     4     5     6     4     5     6
     7     8     9     7     8     9     7     8     9

5.创建低维标准数组(运用多种函数)

输入:

>> A =zeros(3,2);
>> b = ones(2,4);
>> c= eye(4);   #四行四列,除了斜对角线为1,其他均为0
>> d = magic(5) 
>> randn('state',0);
>> e = randn(1,2);
>> f=gallery(5);

 输出:

>> A

A =

     0     0
     0     0
     0     0

>> b

b =

     1     1     1     1
     1     1     1     1

>> c

c =

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

>> d

d =

    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

>> e

e =

   -0.4326   -1.6656

>> f

f =

          -9          11         -21          63        -252
          70         -69         141        -421        1684
        -575         575       -1149        3451      -13801
        3891       -3891        7782      -23345       93365
        1024       -1024        2048       -6144       24572


并不是所有的标准j函数命令都可以创建多种矩阵,如eye,vs

6.创建高维标准数组 (使用标准数组函数)                                 

>>  rand('state',11111);
>>  D1 = rand(2,3,5)
D1(:,:,1) =

    0.9033    0.4399    0.4220
    0.3095    0.5132    0.7455


D1(:,:,2) =

    0.9337    0.7261    0.4910
    0.2321    0.3516    0.4230


D1(:,:,3) =

    0.8450    0.3312    0.9337
    0.8741    0.6670    0.1244


D1(:,:,4) =

    0.4110    0.6719    0.5281
    0.0327    0.8252    0.1574


D1(:,:,5) =

    0.9172    0.3116    0.3806
    0.2875    0.9099    0.6983