美文网首页
基本矩阵运算

基本矩阵运算

作者: Xindolia_Ring | 来源:发表于2019-02-10 02:42 被阅读0次

    MATLAB官方地址: 基本矩阵运算
    test1 grid on折线图
    首先,创建一个名为 a 且包含 9 个元素的简单向量。

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

    a = [1 2 3 4 6 4 3 4 5] (1×9)

    现在,对向量 a 中的每个元素加 2,并将结果存储在一个新向量中。
    请注意 MATLAB 不需要对向量或矩阵运算进行特殊的处理。

    b = a + 2
    

    b = [ 3 4 5 6 8 6 5 6 7] (1×9)

    在 MATLAB 中创建图形就像执行一条命令一样简单。接下来用网格线来绘制向量和结果。

    plot(b)
    grid on
    
    matlab代码 运行结果

    test2 添加轴标签
    MATLAB 也可以创建包含轴标签的其他图表类型。

    bar(b)
    xlabel('Sample #') %x轴坐标
    ylabel('Pounds') %y轴坐标
    
    运行结果图

    test3 用符号绘图
    MATLAB 也可以在绘图中使用符号。下面是用星号来标记各个点的一个示例。MATLAB 提供了多种符号和线型。

    % plot(b,'*')  %e.g.1
    % plot(b,'.-') %e.g.2
    plot(b,'-+')   %e.g.3
    axis([0 10 0 10])
    
    e.g.1 e.g.2 e.g.3

    test4 矩阵计算
    MATLAB 擅长的一个方面是矩阵计算。

    创建矩阵就像创建向量一样简单,可使用分号 (;) 分隔矩阵的各行。

    A = [1 2 0; 2 5 -1; 4 10 -1]
    
    output:
    A =
    
         1     2     0
         2     5    -1
         4    10    -1
    

    可以很容易地计算矩阵 A 的转置。

    B = A' %此处为单引号
    
    output:
    B =
    
         1     2     4
         2     5    10
         0    -1    -1
    

    接下来,将这两个矩阵相乘。同样请注意,MATLAB 不要求像处理数据集合一样处理矩阵。MATLAB 知道您正在处理矩阵并相应调整您的计算。

    C = A * B
    
    output:
    C =
    
         5    12    24
        12    30    59
        24    59   117
    

    无需执行矩阵相乘,使用 .* 运算符即可将两个矩阵或向量的对应元素相乘。

    C = A .* B
    
    output:
    C =
    
         1     4     0
         4    25   -10
         0   -10     1
    

    使用矩阵A对方程 A*x = b 求解,方法是使用 \(反斜杠)运算符。

    b = [1;3;5]
    x = A\b
    res = A*x - b % A*x 等于 b 的结果放入res中
    
    output:
    res =
    
         0
         0
         0
    

    MATLAB 拥有几乎所有用于常见矩阵计算的函数。

    clc;
    clear;
    %% test4_1
    A = [1 2 0; 2 5 -1; 4 10 -1]
    B = A'
    C = A * B
    C = A .* B %此结果会将上一结果覆盖
    
    %% test4_2
    b = [1;3;5]
    x = A\b
    res = A*x - b % A*x 等于 b 的结果放入res中
    
    %% test4_3
    
    eig(A) %获取特征值的函数
    svd(A) %获取奇异值的函数
    % poly函数生成特征多项式系数的向量
    % A 的特征多项式 p 
    p = round(poly(A))
    
    % 使用 roots 函数很容易确定多项式的根,这些值实际上是原始矩阵的特征值
    roots(p)
    
    %% test4_4
    % 求两个向量的卷积
    q = conv(p,p)
    % 再次求卷积并绘制结果图
    r = conv(p,q)
    plot(r);
    
    %% output:
    q =
    
         1   -10    35   -52    35   -10     1
    
    
    r =
    
         1   -15    90  -278   480  -480   278   -90    15    -1
    
    
    %% test4_5
    % 使用 who 或 whos 命令可随时获取内存中存储的变量列表
    whos
    %% output:
     Name      Size            Bytes  Class     Attributes
    
      A         3x3                72  double              
      B         3x3                72  double              
      C         3x3                72  double              
      ans       1x1                16  double    complex   
      b         3x1                24  double              
      p         1x4                32  double              
      q         1x7                56  double              
      r         1x10               80  double              
      res       3x1                24  double              
      x         3x1                24  double 
    
    
    % 可以通过键入特定变量的名称来获取该变量的值
    % 可以在编辑器编辑好运行也可以在命令行窗口直接键入查询
    A
    %% output:
    A =
    
         1     2     0
         2     5    -1
         4    10    -1
    
    
    % 同样MATLAB 在计算中很容易处理复数
    sqrt(-1)
    
    %% output:
    ans =
    
       0.0000 + 1.0000i
    
    再次求卷积并绘制结果图

    每行可以有一条以上的语句,使用逗号或分号分隔各个语句。

    如果未指定变量来存储操作的结果,则结果将存储在名为 ans 的临时变量中。

    相关文章

      网友评论

          本文标题:基本矩阵运算

          本文链接:https://www.haomeiwen.com/subject/xklteqtx.html