zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    xml学习_上篇
    回首博客 年满一周年,记录90个点滴瞬间
    编写PHP代码总结
    代码高亮插件SyntaxHighlighter
    记忆,是一座沙城!
    dreamweaver中的 map怎么调用?_制作热点图像区域
    手机端rem如何适配_rem详解及使用方法
    彻底弄懂css中单位px和em,rem的区别
    JavaScript学习方法
    10条建议让你创建更好的jQuery插件
  • 原文地址:https://www.cnblogs.com/zgqcn/p/11268922.html
Copyright © 2011-2022 走看看