2.2 矩阵的运算

MATLAB:矩阵实验室

生成矩阵的方法:

  • 直接输入矩阵元素
  • 对已知矩阵进行矩阵组合、矩阵转向、矩阵移位
  • 读取数据文件
  • 利用函数直接生成特殊矩阵
    函数名 说明
    zeros 全0矩阵
    ones 全1矩阵
    rand 均匀分布随机矩阵
    randn 正态分布随机分布
    magic 魔方矩阵
    diag 对角矩阵
    triu 上三角矩阵
    tril 下三角矩阵
    eye 单位矩阵
    company 伴随矩阵
    hilb Hilbert矩阵
    invhilb Hilbert逆矩阵
    vander vander矩阵
    pascal Pascal矩阵
    hadamard Hadamard矩阵
    hankel() Hankel矩阵

2.2.1 矩阵生成

1. 生成一个随机矩阵:

A = rand(5)    %生成5×5的随机矩阵

A(:, 1)           %A的第一列
A(:, 3:5)        %A的三到五列
A(1, :)            %A的第一行
A(1:3, :)         %A的一到三行
View Code

2. 矩阵的乘法运算:(叉乘与点乘)

A =

     1     1     1
     2     2     2
     3     3     3


A^2 =  A * A =      %矩阵乘法

     6     6     6
    12    12    12
    18    18    18

 A.^2 =                 %矩阵的点乘法

     1     1     1
     4     4     4
     9     9     9
View Code

3. 矩阵的除法:A^2 A.^2

4. 矩阵的减法:A^2 - A.^2

5. 矩阵的加法:A^2 + A.^2

6. Hankel矩阵求解(汉克尔矩阵:逆对角线相等)

>> c = [1:3],
r = [3:9],
H = hankel(c,r);

c =

     1     2     3


r =

     3     4     5     6     7     8     9

>> H

H =

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

7.Hilbert矩阵及逆矩阵Hilbert矩阵(希尔伯特矩阵:其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标)

>> A = hilb(5)

A =

    1.0000    0.5000    0.3333    0.2500    0.2000
    0.5000    0.3333    0.2500    0.2000    0.1667
    0.3333    0.2500    0.2000    0.1667    0.1429
    0.2500    0.2000    0.1667    0.1429    0.1250
    0.2000    0.1667    0.1429    0.1250    0.1111

 
>> format rat    %更改输出格式
A

A =

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

>> A = invhilb(5)

A =

      25           -300           1050          -1400            630       
    -300           4800         -18900          26880         -12600       
    1050         -18900          79380        -117600          56700       
   -1400          26880        -117600         179200         -88200       
     630         -12600          56700         -88200          44100  
View Code

2.2.2 向量的生成

  • 直接使用[ ] 生成向量
  • 使用冒号表达式生成向量
  • 使用linspace函数生成向量

1、使用冒号

x = [ 初值x0 : 增量 : 终值xn

(1)生成的向量尾元素不一定是终值xn,当xn - x0 恰好为增量的整数倍时,xn才是尾元素

>> t = 1:3:20

t =

       1              4              7             10             13             16             19       

>> t1 = 10:-3:-20

t1 =

  1710              7              4              1             -2             -5             -8       

  811-11            -14            -17            -20       
View Code

(2)当xn > x0 时,增量必须为正值,当xn < x0 时,增量必须为负值,当xn = x0 时,向量只有一个元素

>> t = 1:2:1

t =

       1      
View Code

(3)当增量为1时,增量值可以略去,直接写成 x = 初值 : 终值

>> t = 1:5

t =

       1              2              3              4              5      
View Code

(4)方括号可以删除

2、使用linspace函数生成向量

x = linspace(初值x1,终值xn,点数n)
点数n可以不写,默认为100
>> t = linspace(1,10,10)

t =

  171              2              3              4              5              6              7       

  8108              9             10       

>> t = linspace(1, 10, 5)

t =

       1             13/4           11/2           31/4           10    
View Code

有时要生成对数等比向量,用logspace函数

x = logspace(初值x1, 终值xn, 点数n)  %从10的x1次幂到xn次幂等比生成n个点
>> x = logspace(0,1,15)

x =

  171           2776/2355       635/457        778/475       4151/2150      4843/2128      7364/2745  

  814721/228       3161/848       4227/962      10649/2056      2259/370        914/127       4352/513   

  1510     
View Code
原文地址:https://www.cnblogs.com/zgqcn/p/11268922.html