zoukankan      html  css  js  c++  java
  • matlab对矩阵/向量的常用操作(拼接矩阵、向量逆序、改变矩阵形状、求行阶梯形矩阵、提取矩阵的一部分等)

    几乎所有变量在matlab中都可以视为矩阵(1 x 1元素,1 x n向量,m x n矩阵等),matlab中对矩阵/向量的操作非常多,个人认为对矩阵的操作是体现matlab功底的地方;灵活搭配使用这些基本的函数,能够实现很多功能,下面给出一些matlab中个人常用的对矩阵/向量操作的示例:

    一、创建矩阵:

    (1)创建全零/全一矩阵:

    1 A = zeros(3,2)
    2 B = ones(3,2)

    二、提取矩阵的一部分:

    (1)提取矩阵的某个元素:

    1 A = [1,2;3,4;5,6];
    2 a = A(2,1);         % 提取矩阵 A 第 2 行第 1 列元素 ,a = 3

    (2)提取某一列(行)矩阵:

    提取矩阵某一行:

    1 A = [1,2;3,4;5,6]
    2 a = A(2,:)         % 提取矩阵 A 第 2 行所有元素,这里:表示“所有”

    同理,提取矩阵某一列:

    1 A = [1,2;3,4;5,6]
    3 a = A(:,1)         % 提取矩阵 A 第 1 列所有元素,这里:表示“所有”

    (3)提取奇数/偶数列(行):

    提取矩阵奇数行:

    1 A = [1,2;3,4;5,6]
    2 a = A(1:2:end ,:)    % 提取矩阵 A 奇数行所有元素,这里:表示“所有”,2为步长

    同理,提取矩阵偶数列:

    1 B = [1,2,3,4;2,3,4,5;4,5,6,7;5,6,7,8]
    2 b = B( :,2:2:end)   % 提取矩阵 B 偶数列所有元素,这里:表示“所有”,第一个2为起始列,第二个2为步长

    三、矩阵的拼接:

    1 A = [1,2;3,4;5,6]                 
    2 B = [7,8;9,10;11,12]
    3 
    4 C = [A,B]                           % 或 C = [A B],“,”或“ ”表示横向连接
    5 D = [A;B]                           % “;”表示纵向连接

    四、改变矩阵形状(重构矩阵):

    B = reshape(A,m,n);    % 把矩阵A变成 m,n的矩阵B ,要求矩阵A、B的元素个数保持一致 = m x n 

    1 A = [1,2;3,4;5,6]   
    2 B = reshape(A,2,3)    % 把矩阵 3 行 2 列的矩阵A变成 2 行 3 列的矩阵B

    五、矩阵逆序

    横向逆序:B = fliplr(A);

    纵向逆序:B = flipud(A);

    示例:

    常用:将向量逆序排列:

    1 A = [1,2,3,4,5,6,7,8];
    2 B = fliplr(A)         % 横向逆序,B =    8     7     6     5     4     3     2     1
    1 A = [1,2;3,4;5,6]
    3 B = flipud(A)    % 纵向逆序
    4 C = fliplr(A)    % 横向逆序

    结果:

     1 A =
     2 
     3      1     2
     4      3     4
     5      5     6
     6 
     7 
     8 B =
     9 
    10      5     6
    11      3     4
    12      1     2
    13 
    14 
    15 C =
    16 
    17      2     1
    18      4     3
    19      6     5

    六、矩阵其他小操作

    (1)、求矩阵的转置

    1 A = A'    

    (2)、求矩阵的秩:

    1 r = rank(A)

    (3)、化简成行阶梯形矩阵

    1 B = rref(A)

    (4)、求矩阵的逆:

    1 inv(A) 或 
    2 A^-1

    (5)、求矩阵的迹:

    1 t = trace(A)

    (6)、求方阵的行列式的值:

    1 d = det(A)

     (7)、求矩阵的行列数:

    1 [m,n] = size(A)     % m:矩阵的行数,n:矩阵的列数

    只判断行或列数:

    1 m = size(A,1)      % m返回size函数的第1个变量:行数
    1 n = size(A,2)      % n返回size函数的第2个变量:列数

    七、自己编写的小模块

    (1)、将向量统一变成行向量:

    1 % 判断signal是否为列向量,最后都调整为行向量
    2 if size(A,2) == 1                % 代表是列向量
    3     A = A';
    4 end
  • 相关阅读:
    《芒果TV》UWP版利用Windows10通用平台特性,率先支持Xbox One平台
    Win10《芒果TV》内测版现已支持在国行版 Xbox One 下载体验
    Win10《芒果TV》商店内测版更新至v3.1.6:率先支持Xbox One平台
    HLS(HTTP Live Streaming)学习和探讨
    喜迎Win10周年版,芒果TV UWP完善手机视频离线下载
    Windows10 1607 x64/x86 + Office 2016 Win/Mac + KMS激活/安装密钥汇总
    Win10商店芒果TV UWP版更新,新增后台视频下载
    Win10 UWP版《芒果TV》v2.4.0直播超女,芒果台综艺一网打尽
    (三)3-3 Python的一般形式和参数
    (三)3-1 练习
  • 原文地址:https://www.cnblogs.com/CCWangsj/p/13055251.html
Copyright © 2011-2022 走看看