MATLAB 入门(二)矩阵的生成与相关值的求解

向量的等差元素法

1. “:”生成法

    向量vector=vec0:n:vecn

vec0为首位元素, vecn为未位元素,n为步长。

>> vector=0:0.1:1 

vector =

         0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000    1.0000

2. “ linspace ”函数生成法

“ linspace ”为线性等分向量函数,格式为:
vec=linspace(vec0,vecn,n)。(n为元素的个数)


>> vec=linspace(0,10,10) 

vec =

         0    1.1111    2.2222    3.3333    4.4444    5.5556    6.6667    7.7778    8.8889   10.0000

建立矩阵

直接输入法

在矩阵中是方括号创建,圆括号调用。
将矩阵的元素用方括号括起来,按照矩阵行的顺序输入各个元素,
同一行的元素之间用逗号(空格)来分隔,
不同行之间用分号(回车)来分隔。

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

b =

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

b =

     1     2     3
     4     5     6
     7     8     9

外部文件读取法

特殊矩阵函数生成法

1. 单位矩阵

eye(m,n)
第一个参数代表行数,第二个参数代表列数

>> eye(3,4)

ans =

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

eye(m)
若只有一个参数,则代表行列相同

>> eye(3)

ans =

     1     0     0
     0     1     0
     0     0     1

>> 

2. 零矩阵

zeros(m,n)、zeros(m)与eye类似

>> zeros(6,4)

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

>> 
>> zeros(3)

ans =

     0     0     0
     0     0     0
     0     0     0

3. 一矩阵

ones(m,n)、ones(m)同上

>> ones(2,3)

ans =

     1     1     1
     1     1     1
>> ones(2) 

ans =

     1     1
     1     1

4. 生成对角阵

>> a=[1,2,3];
>> diag(a)

ans =

     1     0     0
     0     2     0
     0     0     3

5. 随机矩阵

rand(m,n)、rand(m)生成的元素为0-1的随机数

>> rand(5,4)

ans =

    0.8147    0.0975    0.1576    0.1419
    0.9058    0.2785    0.9706    0.4218
    0.1270    0.5469    0.9572    0.9157
    0.9134    0.9575    0.4854    0.7922
    0.6324    0.9649    0.8003    0.9595
>> rand(4) 

ans =

    0.6557    0.6787    0.6555    0.2769
    0.0357    0.7577    0.1712    0.0462
    0.8491    0.7431    0.7060    0.0971
    0.9340    0.3922    0.0318    0.8235

6. 生成正态分布随机举矩阵

randn(m,n)、randn(m)

>> randn(5,4)

ans =

    0.3252   -0.2414   -0.1649    0.0774
   -0.7549    0.3192    0.6277   -1.2141
    1.3703    0.3129    1.0933   -1.1135
   -1.7115   -0.8649    1.1093   -0.0068
   -0.1022   -0.0301   -0.8637    1.532
>> randn(5) 

ans =

   -0.7697    0.0326   -1.4916    0.7481   -1.4224
    0.3714    0.5525   -0.7423   -0.1924    0.4882
   -0.2256    1.1006   -1.0616    0.8886   -0.1774
    1.1174    1.5442    2.3505   -0.7648   -0.1961
   -1.0891    0.0859   -0.6156   -1.4023    1.4193

7. 生成n阶随机幻方

magic(n)
各行各列以及主副对角线之和相等。

>> magic(4)

ans =

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

矩阵元素的操作

矩阵元素的存取

矩阵中的元素可通过下标来存取,
如,a(i,j)表示a中第i行第j列的元素。

a=[1 2 3;10 20 30;4 5 6]
          b=a(1,2)+a(2,3)

a =

     1     2     3
    10    20    30
     4     5     6


b =

    32

因矩阵元素在内存中是按列存储的,
故还可通过单变量下标来访问矩阵元素。

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

a =

     1     2     3
    10    20    30
     4     5     6  

c =

    32

利用下标可修改矩阵中的个别元素。

求矩阵的相关值

1. 求矩阵的逆

inv()

>> a=[1 2 3;4 5 2;3 6 7]; 
>> inv(a)

ans =

    3.8333    0.6667   -1.8333
   -3.6667   -0.3333    1.6667
    1.5000   -0.0000   -0.5000

2. 求矩阵的转秩

A’

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

ans =

     1     4     3
     2     5     6
     3     2     7

3. ‘.*’与‘ *’的区别

所有带点的都是矩阵的对应项相乘;

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

ans =

    28    64
    64   154

>> a.*b

ans =

     2     8    18
    32    50    72

4. 寻找符合条件矩阵元素的索引

[m,n]=find(a>x)
x为一常量,返回所有符合条件的索引。

>> a=magic(5)

a =

    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

>> [m,n]=find(a>20)

m =

     2
     1
     5
     4
     3


n =

     1
     2
     3
     4
     5

5.求矩阵的行列式

det(A)
A为一行列式

>> a=[1,3,5];
>> A=diag(a)

A =

     1     0     0
     0     3     0
     0     0     5
     
   >> det(A)

ans =

    15

6. 求矩阵的迹

范数是矩阵主对角线元素之和
trace(A)

>> a=[1,3,5];
>> A=diag(a)

A =

     1     0     0
     0     3     0
     0     0     5
     >> trace(A)

ans =

     9

7. 求矩阵的秩

rank(A)

>> a=[1,3,5];
>> A=diag(a)
A =

     1     0     0
     0     3     0
     0     0     5
rank(A)

ans =

     3

8. 求矩阵的范数

norm(A)

>> a=[1,3,5];
>> A=diag(a)
A =

     1     0     0
     0     3     0
     0     0     5
>> norm(A)
ans =
    5

9. 求矩阵的特征值极特征向量

[V,D]=eig(A)

>> A=[-29 6 18;20 5 12;-8 8 5]
A =
   -29     6    18
    20     5    12
    -8     8     5
>> [V,D]=eig(A)
V =
    0.7130    0.2803    0.2733
   -0.6084   -0.7867    0.8725
    0.3487    0.5501    0.4050
D =
  -25.3169         0         0
         0  -10.5182         0
         0         0   16.8351
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值