MATLAB矩阵与阵列

矩阵与阵列在MATLAB中的运算。

在MATLAB中矩阵的关系求解是非常方便快捷的。下面我们从基础知识开始学习。
矩阵的定义:一般而言,所谓的矩阵就是一组数的全体,在()内排列成m行n列(横为行,纵为列)的一个数表,并称它为m*n的阵。在MATLAB中的输入法:

元素之间可用空格或逗号隔开;

>> a=[1 2 3;4 5 6;7 8 9;10 11 12]

a =

     1     2     3
     4     5     6
     7     8     9
    10    11    12

向量法产生矩阵:向量名=初值:增量:终值

>> a=1:2:10

a =

     1     3     5     7     9

函数法创建矩阵:
[] 空矩阵
eye 单位矩阵
ones 全部元素都为1的常数矩阵
rand 元素服从0和1之间的均匀分布的随机矩阵
randn 元素服从0均值单位方差正太分布的随机矩阵
zeros 全部元素都为0的矩阵

>> a=[]

a =

     []
>> a=eye(3,3)

a =

     1     0     0
     0     1     0
     0     0     1

>> a=ones(3,4)

a =

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

>> a=rand(2,3)

a =

    0.8147    0.1270    0.6324
    0.9058    0.9134    0.0975

>> a=randn(3,4)

a =

   -0.4336    2.7694    0.7254   -0.2050
    0.3426   -1.3499   -0.0631   -0.1241
    3.5784    3.0349    0.7147    1.4897

>> a=zeros(4,5)

a =

     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0

矩阵的简单运算:求幂和乘积

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

a =

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

>> a.^2

ans =

     1    16    25
     4     9    36
    36    49    64
    81    49    25
>> a=[1 2 3;4 5 6;7 8 9]

a =

     1     2     3
     4     5     6
     7     8     9

>> a*a

ans =

    30    36    42
    66    81    96
   102   126   150

注意:在乘积运算中要使矩阵的维度相同方可进行。

矩阵元素的引用
对矩阵改革元素行,列提取:变量名(行,列)

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

a =

     1     2     3
     4     5     6
     7     8     9
>> a(2,3)

ans =

     6

提取分别矩阵行元素和列元素

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

a =

     1     2     3
     4     5     6
     7     8     9
>> a(2:3,:)

ans =

     4     5     6
     7     8     9
>> a(:,1:2)

ans =

     1     2
     4     5
     7     8     

向量标识方式:a(vr,vc) vr=[i1 i2 i3…in] vc=[j1 j2 j3…jn],分别含有矩阵a的行号和列号的单调向量,a(vr,vc)是取出矩阵a第i1 i2 i3…in行和第j1 j2 j3…jn列,交叉处的元素所构成的新矩阵。

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

a =

     1     2     3
     4     5     6
     7     8     9
>> vr=[1,2]

vr =

     1     2

>> vc=[2,3]

vc =

     2     3

>> A=a(vr,vc)

A =

     2     3
     5     6

矩阵的拆分:
提取矩阵的某一部分,可以使用“冒号表达式”。在MATLAB中“ :”表示全部。

>> a=[1 2 3;4 5 6;7 8 9;10 11 12]

a =

     1     2     3
     4     5     6
     7     8     9
    10    11    12

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

b =

     1     2     3
     4     5     6
     7     8     9

>> c=a(:,1:2)

c =

     1     2
     4     5
     7     8
    10    11

矩阵的合并:
扩展行合并必须列数相等C=[A;B];
扩展列合并必须行数相等C=[A,B];

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

a =

     1     2     3
     4     5     6
     7     8     9

>> b=[10 11 12]

b =

    10    11    12
>> c=[a;b]

c =

     1     2     3
     4     5     6
     7     8     9
    10    11    12
d =

     1
     2
     3

>> c=[a,d]

c =

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

矩阵的转置;
定义:简单的认为将行转为列,将列转为行。
在MATLAB中使用“ ’ ”单引号表达式。

c =

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

>> c=c'

c =

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

矩阵的展开:
即将矩阵元素依次按列排开,在MATLAB中用“ : ”表达式。

c =

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

>> d=c(:)

d =

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

矩阵的修改和删除:
修改:要修改已定义的矩阵,只需对已存在的元素或字块重新赋值即可;

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

a =

     1     2     3
     4     5     6
     7     8     9

>> a(1,:)=[0 1 2]

a =

     0     1     2
     4     5     6
     7     8     9

>> a(:,2)=[2 4 6]

a =

     0     2     2
     4     4     6
     7     6     9

删除:删除 矩阵行或列只需将矩阵的某行,某列赋值为控制的方式,删除行或列的部分元素会出错。

>> a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]

a =

     1     2     3     4     5
     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20
    21    22    23    24    25

>> a(:,[2,3])=[]

a =

     1     4     5
     6     9    10
    11    14    15
    16    19    20
    21    24    25

>> a([1,2],:)=[]

a =

    11    14    15
    16    19    20
    21    24    25

数组的运算:
在数学上一维数组相当于只有一行或者只有一列的矩阵;

>> a=[1 2 3 4 5]

a =

     1     2     3     4     5

>> b=[1;2;3;4;5]

b =

     1
     2
     3
     4
     5

二维数组用矩阵的方式进行表示,在此不进行赘述;
数组的数学运算:
数组与矩阵同样具有加减乘除幂运算

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

a =

     1     2     3
     4     5     6

>> b=[2 4 6;8 10 12]

b =

     2     4     6
     8    10    12

>> a+b

ans =

     3     6     9
    12    15    18

>> b-a

ans =

     1     2     3
     4     5     6

>> a.*b

ans =

     2     8    18
    32    50    72

>> a./b

ans =

    0.5000    0.5000    0.5000
    0.5000    0.5000    0.5000

>> a.\b

ans =

     2     2     2
     2     2     2

>> a.^2

ans =

     1     4     9
    16    25    36

数组的关系和逻辑运算:
关系有:">","<",">=","<=","==","~=",在关系运算中,关系成立结果为1(真),关系不成立结果为0(假)。

>> a=[1 9 5;8 3 6]

a =

     1     9     5
     8     3     6

>> b=[1 6 5;9 4 7]

b =

     1     6     5
     9     4     7

>> a==b

ans =

  2×3 logical 数组

   1   0   1
   0   0   0

>> a>=b

ans =

  2×3 logical 数组

   1   1   1
   0   0   0

>> a<=b

ans =

  2×3 logical 数组

   1   0   1
   1   1   1

>> a>b

ans =

  2×3 logical 数组

   0   1   0
   0   0   0

>> a<b

ans =

  2×3 logical 数组

   0   0   0
   1   1   1

>> a~=b

ans =

  2×3 logical 数组

   0   1   0
   1   1   1

逻辑运算:
数组的逻辑运算有&与,|或,~非,只有非0(1)和0两种元素。

>> a=[2 3 0]

a =

     2     3     0

>> b=[0 1 2]

b =

     0     1     2

>> a&b

ans =

  1×3 logical 数组

   0   1   0

>> a|b

ans =

  1×3 logical 数组

   1   1   1
>> ~a

ans =

  1×3 logical 数组

   0   0   1

>> ~b

ans =

  1×3 logical 数组

   1   0   0

注:以上代码内容均需在MATLAB中进行编写运行。
以上为MATLAB中关于矩阵和数组的基础内容希望给初学者带来帮助,若有编辑失误请谅解,在讨论区留言一起解决。

你可能感兴趣的:(笔记,matlab,数学建模)