精华内容
下载资源
问答
  • 单应矩阵公式推导及计算

    千次阅读 2019-03-08 16:09:36
    单应矩阵可以应用在图像矫正、图像配准拼接、视角转换以及计算两张图像的相机运动(旋转和平移)上。 下面我们推导一下单应矩阵,本文讲述了两种推导方式。首先回忆一下相机模型矩阵: 其中: [R T]是一个...

    温馨提示:如遇公式错误,可在文末留言,欢迎指正。本文未经允许禁止转载。


      单应矩阵描述的是空间中同一平面上的三维点在两张图像中的对应关系。这里需要强调的是同一平面

      单应矩阵可以应用在图像矫正、图像配准拼接、视角转换以及计算两张图像的相机运动(旋转和平移)上。

    下面我们推导一下单应矩阵,本文讲述了两种推导方式。首先回忆一下相机模型矩阵:

       其中:

    [R T] 是一个3x4的矩阵,Xw是一个4x1的矩阵,K是一个3x3的矩阵。

     

     

    图1 空间中同一点投影到两图像上

     

    为了讨论更为一般的情况,我们假设两张图片来自于两个相机A、B(对应着左右图),这样两个相机的内参矩阵是不同的,分别为Ka、Kb。世界坐标系中的三维点到相机坐标系转换,对应的旋转、平移矩阵分别为:

    这样一来,我们就可以得到两个相机模型矩阵。

     

    将世界坐标系中的点用非齐次形式(头顶一飘~)表达为:

     

     

    1. 推导一:

    在相机坐标系下,空间中的平面模型为

    是在相机坐标系下的非齐次坐标。

     

    图2 相机看空间中的一个平面

     

    接下来推导从左图(相机A)到右图(相机B)的映射矩阵,需要用到的式子先摆上(下标中带字母“ca”和“a”,对应相机A)。

           是平面在相机A坐标系下的法向量,d表示该平面到相机A的垂直距离,是相机A坐标系下平面上的一点。

     

    开启推导模式:

             

      需要说明一下:

    是上述平面在世界坐标系中的法向量。

     

    旋转矩阵R是正交矩阵,所以R的转置就等于R的逆

     

       至此,经过上述推导,两张图像中点的对应关系我们就得到了。

    如果把世界坐标系和相机A坐标系重合,那么

    上式化简为:

     

    单应矩阵

    H是一个3x3的矩阵,可以看出单应矩阵与两个相机之间的相对运动以及所拍摄平面特性有关系。

     

    2. 推导二:

      为了方便计算,假设所拍摄平面在世界坐标系中位于Z=0上。

    这样Xw大小就由原来的4x1变成了3x1,旋转矩阵R中第三列就可以消去,[R T]变成了3x3的矩阵。

    3. 如何计算H:

     

    为两张图像中匹配的点对(可以利用sift、surf等描述子匹配获得),每一对匹配点,可以得到两个方程。H矩阵中h9是尺度,所以一共有8个未知数,则至少需要4对点就可以解出矩阵H。解H矩阵常用的一个方法是SVD分解,以后我们会讲一下SVD分解。

     

    这里给出MATLAB中求解H的代码:

    [U,S,V] =svd(A);
    H=V(:,end);
    H=reshape(H,3,3);

    至此,单应矩阵的推导以及计算就讲解完了。这里仍然需要强调的是:使用单应矩阵,需要确保三维点在一个平面上。(当然并不是必须在一个平面上,因为如果三维点距离相机比较远,三维点之间的距离和其距离相机的距离相比就很小,那就可以认为在一个平面上了。)

    本文同步更新微信公众号:

    展开全文
  • 协方差矩阵的定义及其计算公式 (转)

    万次阅读 多人点赞 2017-02-10 00:07:06
    协方差矩阵的定义及其计算公式   (2014-03-20 18:36:56) 转载▼   分类: matlab 协方差矩阵在机器学习中经常用到,查看wiki:http://zh.wikipedia.org/wiki/协方差矩阵 可知...

    协方差矩阵的定义及其计算公式

     (2014-03-20 18:36:56)
      分类: matlab

    协方差矩阵在机器学习中经常用到,查看wiki:http://zh.wikipedia.org/wiki/协方差矩阵 可知协方差矩阵的具体计算公式如下:

    统计学概率论中,协方差矩阵是一个矩阵,其每个元素是各个向量元素之间的协方差这是从标量随机变量到高维度随机向量的自然推广。

    假设X是以n个标量随机变量组成的列向量

    X = \begin{bmatrix}X_1 \\ \vdots \\ X_n \end{bmatrix}

    并且\mu_i是其第i个元素的期望值,即, \mu_i = \mathrm{E}(X_i)。协方差矩阵被定义的第i,j项是如下:

    \Sigma_{ij} = \mathrm{cov}(X_i, X_j) = \mathrm{E}\begin{bmatrix} (X_i - \mu_i)(X_j - \mu_j) \end{bmatrix}

    即:

    \Sigma=\mathrm{E} \left[ \left( \textbf{X} - \mathrm{E}[\textbf{X}] \right) \left( \textbf{X} - \mathrm{E}[\textbf{X}] \right)^\top \right]
    = \begin{bmatrix} \mathrm{E}[(X_1 - \mu_1)(X_1 - \mu_1)] & \mathrm{E}[(X_1 - \mu_1)(X_2 - \mu_2)] & \cdots & \mathrm{E}[(X_1 - \mu_1)(X_n - \mu_n)] \\ \ \mathrm{E}[(X_2 - \mu_2)(X_1 - \mu_1)] & \mathrm{E}[(X_2 - \mu_2)(X_2 - \mu_2)] & \cdots & \mathrm{E}[(X_2 - \mu_2)(X_n - \mu_n)] \\ \ \vdots & \vdots & \ddots & \vdots \\ \ \mathrm{E}[(X_n - \mu_n)(X_1 - \mu_1)] & \mathrm{E}[(X_n - \mu_n)(X_2 - \mu_2)] & \cdots & \mathrm{E}[(X_n - \mu_n)(X_n - \mu_n)] \end{bmatrix}

    矩阵中的第(i,j)个元素是X_iX_j的协方差。这个概念是对于标量随机变量方差的一般化推广。

     

    二、理解的关键

      1、理解的关键是两个随机变量x1,x2的协方差如何计算,有cov(x1,x2) = E{[(x1-E(x1)][x2-E(x2)]},对于离散的随机变量x1,x2,协方差矩阵描述的x1,x2相互联系的偏差,所以两个随机变量是一一对应的,即假设有m个样本值,则分别为(x11,x21),(x12,x22),(x13,x23),...(x1m,x2m),这便可以写成一个2*m的矩阵的形式。则x1,x2协方差表示的是两个随机变量对应的样本值分别都减去各自均值后的乘积的均值(因为无偏性估计的缘故,除以的不是m而是m-1);

      2、所以对于一个n*m的样本矩阵,得出的协方差矩阵C是n*n的矩阵,协方差矩阵每个元素Cij表示的随机变量xi,xj的协方差。所以协方差矩阵是一个对称矩阵,且对角线上元素为每个随机变量的方差(如果是信号的话可以看成是能量);如果各个变量相关性很小的话,互相的协方差接近0,即协方差矩阵基本上为对角阵;

      3、可以证明,协方差矩阵是非负定矩阵,这可以有非负定矩阵的定义得到;

      4、同样地,为了表示各个随机变量相关性到底有多大,可以引入相关性矩阵。

    统计学的基本概念

    学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。

    均值:协方差矩阵的定义及其计算公式
    标准差:协方差矩阵的定义及其计算公式
    方差:协方差矩阵的定义及其计算公式

    很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

    为什么需要协方差?

    上面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:

    协方差矩阵的定义及其计算公式

    来度量各个维度偏离其均值的程度,标准差可以这么来定义:

    协方差矩阵的定义及其计算公式

    协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

    从协方差的定义上我们也可以看出一些显而易见的性质,如:

    协方差矩阵的定义及其计算公式
    协方差矩阵的定义及其计算公式

    协方差多了就是协方差矩阵

    上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算协方差矩阵的定义及其计算公式个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

    协方差矩阵的定义及其计算公式

    这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有协方差矩阵的定义及其计算公式三个维度,则协方差矩阵为

    协方差矩阵的定义及其计算公式

    可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

    Matlab协方差实战

    上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数(蓝色部分为Matlab代码)。

    首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数

    1MySample = fix(rand(10,3)*50)

    协方差矩阵的定义及其计算公式

    根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

    dim1 = MySample(:,1);dim2 = MySample(:,2);dim3 = MySample(:,3);

    计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

     1sum( (dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( size(MySample,1)-1 ) %(10行;(10-1)) 得到 74.53332;sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -10.08893;sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -106.4000

    搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

    1std(dim1)^2 % 得到   108.3222;2std(dim2)^2 % 得到   260.6222;3std(dim3)^2 % 得到   94.1778

    这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

    1cov(MySample)

    协方差矩阵的定义及其计算公式

    把我们计算的数据对号入座,是不是一摸一样?

    Update:今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式通道而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出Matlab代码实现:

    1X = MySample - repmat(mean(MySample),10,1);    % 中心化样本矩阵,使各维度均值为02C = (X'*X)./(size(X,1)-1);%B = repmat(A,m,n)将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成。B 的维数是 [size(A,1)*m, (size(A,2)*n]

    >> A = [1,2;3,4]
    A =
    1 2
    3 4
    >> B = repmat(A,2,3)
    B =
    1 2 1 2 1 2
    3 4 3 4 3 4
    1 2 1 2 1 2
    3 4 3 4 3 4
     

    总结

    理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度。

    matlab:

    1、均值
    数学定义:
    Matlab 函数:mean
    >>X=[1,2,3]
    >>mean(X)=2
    如果X 是一个矩阵,则其均值是一个向量组。mean(X,1)为列向量的均值,mean(X,2)为行向量的均
    值。
    >>X=[1 2 3
             4 5 6]
    >>mean(X,1)=[2.5, 3.5, 4.5]
    >>mean(X,2)=[2
                           5]
    若要求整个矩阵元素的均值,则为mean(mean(X))。
    >>mean(mean(X))=3.5
    也可使用mean2函数:
    >>mean2(X)=3.5
    median,求一组数据的中值,用法与mean 相同。
    >>X=[1,2,9]
    >>mean(X)=4
    >>median(X)=2
    2、方差
    数学定义:
    均方差:
    Matlab 函数:var
    要注意的是var 函数所采用公式中,分母不是,而是。这是因为var 函数实际上求的并不是方差,
    而是误差理论中“有限次测量数据的标准偏差的估计值”。
    >>X=[1,2,3,4]
    >>var(X)=1.6667
    >> sum((X(1,:)-mean(X)).^2)/length(X)=1.2500
    >> sum((X(1,:)-mean(X)).^2)/(length(X)-1)=1.6667
    var 没有求矩阵的方差功能,可使用std 先求均方差,再平方得到方差。
    std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差
    >>X=[1 2
             3 4]
    >>std(X,0,1)=1.4142 1.4142
    >>std(X,0,2)=0.7071
                         0.7071
    若要求整个矩阵所有元素的均方差,则要使用std2函数:
    >>std2(X)=1.2910
    4、协方差矩阵
    A=[61.45,55.9,61.95,59,58.14,53.61,55.48,54.21,61.52,54.92];
    B=[40.36,39.8,49.2,48,51.5,49.39,51.13,58.06,61,62.35];
    C=[8.61,8.91,10.43,13.32,13.48,15.75,18.14,19.95,21.95,23.53];
    D=[14.31,14.72,15.28,15.91,14.67,15,15.86,15.16,13.72,12.94];
    E=[7.67,7.75,8.15,9.24,10.68,10.58,10.31,10,8.91,8.51];
    >> q=[A',B',C',D',E'];
    >> w=cov(q)
    w =
    10.3710 -4.7446 -6.6023 -0.1873 -1.8881
    -4.7446 59.1503 38.7606 -3.0743 3.0982
    -6.6023 38.7606 28.6966 -2.0199 2.4166
    -0.1873 -3.0743 -2.0199 0.8474 0.3936

    -1.8881 3.0982 2.4166 0.3936 1.3412

    例:

    =
        
    -1     1     2
        
    -2     3     1
         
    4     0     3

    for i=1:size(a,2) %size(a,1)求矩阵的行数;size(a,2)求矩阵的列数,相当于length(a);size(a)同时求矩阵的行和列数
        
    for j=1:size(a,2) %A(1,:)表示这个矩阵的第一行;A(:,1)表示这个矩阵的第一列


            c(i,j)=sum((a(:,i)-mean(a(:,i))).*(a(:,j)-mean(a(:,j))))/(size(a,1)-1);
        end 
    end

    c =

    10.3333   -4.1667    3.0000

    -4.1667    2.3333   -1.5000

    3.0000   -1.5000    1.0000

    c为求得的协方差矩阵,在matlab以矩阵a的每一列为变量,对应的每一行为样本。这样在矩阵a中就有3个列变量分别为a(:,1), a(:,2), a(:,3)。

    在协方差矩阵c中,每一个元素c(i,j)为对第i列与第j列的协方差,例如c(1,2) = -4.1667为第一列与第二列的协方差。

     

    拿c(1,2)的求解过程来说

    c(1,2)=sum((a(:,1)-mean(a(:,1))).*(a(:,2)-mean(a(:,2))))/(size(a,1)-1);

    1a(:,1)-mean(a(:,1)),第一列的元素减去该列的均值得到

    -1.3333

    -2.3333

    3.6667

    2,  a(:,2)-mean(a(:,2)),第二列的元素减去该列的均值得到

    -0.3333

    1.6667

    -1.3333

    3, 再将第一步与第二部的结果相乘

    -1.3333         -0.3333          0.4444

    -2.3333  .*     1.6667  =        -3.8889

    3.6667          -1.3333          -4.8889

     

    4, 再将结果求和/size(a,1)-1 得 -4.1667,该值即为c(1,2)的值。

    再细看一下是不是与协方差公式:Cov(X,Y) = E{ [ (X-E(X) ] [ (Y-E(Y) ] } 过程基本一致呢,只是在第4步的时候matlab做了稍微的调整,自由度为n-1,减少了一行的样本值个数。

    clear all;
    a =[-1,1,2;-2,3,1;4,0,3]
    b=cov(a)
    for i=1:size(a,2) %size(a,1)求矩阵的行数;size(a,2)求矩阵的列数
        for j=1:size(a,2) %A(1,:)表示这个矩阵的第一行;A(:,1)表示这个矩阵的第一列
        c(i,j)=sum((a(:,i)-mean(a(:,i))).*(a(:,j)-mean(a(:,j))))/(size(a,1)-1)
        end
    end

    展开全文
  • 维数组实验题:按如下公式递归计算矩阵行列式的值: 提示信息:“Please enter matrix size n(1<=n<20):” “Please input matrix line by line:\n” “matrix a:\n” **输出格式要求:“Submatrix:\n” ...

    二维数组实验题:按如下公式递归计算矩阵行列式的值:

    提示信息:“Please enter matrix size n(1<=n<20):” “Please input matrix line
    by line:\n” “matrix a:\n”
    **输出格式要求:“Submatrix:\n” “DValue of the Submatrix is %6.1f\n” “%6.1f\t” “result = %f\n”

    程序运行结果如下:

    Please enter matrix size n(1<=n<20):3

    Please input matrix line by line:

    1 2 3

    4 5 7

    8 9 11

    matrix a:

    1.0 2.0 3.0

    4.0 5.0 7.0

    8.0 9.0 11.0

    (注意:此处有一个空行)

    Submatrix:

    5.0 7.0

    9.0 11.0

    DValue of the Submatrix is -8.0

    Submatrix:

    4.0 7.0

    8.0 11.0

    DValue of the Submatrix is -12.0

    Submatrix:

    4.0 5.0

    8.0 9.0

    DValue of the Submatrix is -4.0

    result = 4.000000

    下面是代码:

    #include <math.h>
    #include <stdio.h>
     
    #define  CONST 1e-6
    #define  SIZE 20
     
    void InputMatrix (double a[][SIZE], int n);
    double DeterminantValue(double a[][SIZE], int n);
    void SubMatrix(double a[][SIZE], double b[][SIZE], int n, int row, int col);
    void PrintMatrix(double a[][SIZE], int n);
    int main(void)
    {                        
        double  a[SIZE][SIZE];
        int     n;
        double  result;
        printf("Please enter matrix size n(1<=n<%d):", SIZE);
        scanf("%d", &n);
        printf("Please input matrix line by line:\n");
        InputMatrix(a, n);
        printf("matrix a:\n");
        PrintMatrix(a, n);
        printf("\n");
        result = DeterminantValue(a, n);
        printf("result = %f\n", result);
        return 0;
    }                        
    //  函数功能: 输入一个n×n矩阵的元素
    void InputMatrix (double a[][SIZE], int n)
    {                        
        int i, j;
        for (i = 0; i < n; i++)
        {                        
            for (j = 0; j < n; j++)
            {                        
                scanf("%lf", &a[i][j]);
            }
        }
    }                        
    //  函数功能: 计算n×n矩阵的行列式的值
    double DeterminantValue(double a[][SIZE], int n)
    {                        
        int    i = 0, j = 0;
        double temp, result, b[SIZE][SIZE];
        if (n == 1)
        {                        
            result = a[0][0];
        }
        else if (n == 2)
        {                        
            result = a[0][0] * a[1][1] - a[0][1] * a[1][0];
        }
        else
        {                        
            result = 0.0;
            for (j = 0; j < n; j++)
            {                        
                SubMatrix(a, b, n, i, j);
                printf("Submatrix:\n");
                PrintMatrix(b, n - 1);
                temp = DeterminantValue(b, n - 1);
                result += pow(-1, i + j) * a[0][j] * temp;
                printf("DValue of the Submatrix is %6.1f\n", temp);
            }
        }
        return result;
    }                        
    //  函数功能: 计算n×n矩阵a中第row行col列元素的(n-1)×(n-1)子矩阵b
    void SubMatrix(double a[][SIZE], double b[][SIZE], int n, int row,
                   int col)
    {                        
        int i, j, ii = 0, jj = 0;
        for (i = 0; i < n; i++)
        {                        
            jj = 0;
            for (j = 0; j < n; j++)
            {                        
                if (i != row && j != col)
                {                        
                    b[ii][jj] = a[i][j];
                    jj++;
                }
            }
            if (i != row && j != col)
            {                        
                ii++;
            }
        }
    }                        
    //  函数功能: 输出一个n×n矩阵的元素
    void PrintMatrix(double a[][SIZE], int n)
    {                        
        int i, j;
        for (i = 0; i < n; i++)
        {                        
            for (j = 0; j < n; j++)
            {                        
                printf("%6.1f\t", a[i][j]);
            }
            printf("\n");
        }
    }                       
    

    展开全文
  • 矩阵相关公式

    千次阅读 2021-03-01 10:56:28
    矩阵、列矩阵:m x n矩阵中,m=1的为矩阵。n=1的为列矩阵; 零矩阵:所有元素都为0的m x n矩阵; 方阵:m=n的m x n矩阵; 单位阵:主对角线上都为1,且其余为0 。n阶单位方阵称为E; 对角形矩阵:非对角线上的...

    一、相关概念:

    • 行矩阵、列矩阵:m x n矩阵中,m=1的为行矩阵。n=1的为列矩阵;
    • 零矩阵:所有元素都为0的m x n矩阵;
    • 方阵:m=n的m x n矩阵;
    • 单位阵:主对角线上都为1,且其余为0 。n阶单位方阵称为E;
    • 对角形矩阵:非对角线上的元素都为0的n阶方阵;
    • 数量矩阵:n阶对角形矩阵对角线上元素相等的矩阵;
    • 上(下)三角形矩阵:n阶方阵中,主对角线下方元素全为0,称为上三角矩阵。主对角线上方元素都为0,称为下三角矩阵
    • 同形矩阵:A=m_{ij}(m x n),B=n_{ij}(s x t),若m=s,n=j,则A和B为同型矩阵,若元素相等则A,B相等;
    • 转置矩阵:以矩阵主对角线为轴做镜像,矩阵行列互换,且不改变先后顺序的m x n阶矩阵,记为A^{T};
    • 逆矩阵:如果A是n阶方阵,若存在一个n阶方阵B使得AB=BA=E,则A成为可逆矩阵或非奇异矩阵。(可逆矩阵一定是方阵,并且他的逆矩阵为同阶方阵)记为A^{-1};
    • 伴随矩阵:设矩阵A,A_{ij}为的行列式|A|中元素a_{ij}的代数佘子式,称A^{*}为矩阵A的伴随矩阵;
    • 正交矩阵:设A为实数域R上的方阵,如果他们A^{T}A=AA^{T}=E,那么称为正交矩阵(正交矩阵的转置=正交矩阵的逆)(既3个向量两两垂直);
    • 矩阵初等变换:互换,倍乘,倍加。矩阵的初等行变换和列变换称为初等变换;
    • 初等矩阵:由单位阵E经过一次初等变换得到的矩阵为初等矩阵;
    • 对称矩阵A_{ij}=A_{ji}
    • 反对称矩阵A_{ij}=-A_{ji}
    • 广播(深度学习中):例如C=A+b,其中C_{i,j}=A_{i,j}+b_j,也就是向量b和矩阵A的每一行相加。

    二、相关公式

    3.矩阵的转置:把m×n矩阵的行列互换之后得到的矩阵,称为A的转置矩 阵,记作AA^{T}

    4.与逆矩阵相关的公式

    7.与伴随矩阵相关的公式:

    8.方阵行列式

    9.转置相关:

    • (A^{T})^{T}=A
    • (A+B))^{T}=A^{T}+B^{T}
    • (\lambda A)^{T}=\lambda A^{T}
    • (AB)^{T}=B^{T}A^{T}
    展开全文
  • 维FFT公式 维阵列方向图表达式 令k=[M/λdxsinθcosφ],l=[N/λdysinθsinφ],则k=-M/2,…,0,…,M/2-1, l=-N/2,…,0,…,N/2-1 得到 对w做维FFT得到 比较式(3)和式(4),对于式(4)做...
  • #include <stdio.h> #define M 5 #define N 5 main() { int i,j,s=0; int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; for(i=0;i<M;i++) { for(j=0;...i+.
  • Matrix矩阵计算

    千次阅读 2015-03-27 09:50:15
    矩阵计算是图形学上的一个基础处理 a) 向量的Matrix矩阵变换 b) Matrix的矩阵乘法 c) Matrix求逆矩阵
  • 基于矩阵的FFT计算原理

    千次阅读 2020-05-03 16:00:10
    本文针对长点数FFT计算开发了一种基于矩阵的FFT算法,此算法将需要计算的复数点序列抽象为一个矩阵进行处理,将大点数计算分割为多次小点数FFT计算,并且小点数之间的处理互不影响,进而可在多核处理器上...
  • 矩阵求导公式的推导和计算引言全微分公式一个例子链式求导法则的应用 引言 在上一篇文章《机器学习中的向量求导和矩阵求导》中,我们介绍了关于矩阵求导和向量求导的一些定义和计算方式。这些内容对于理解向量和矩阵...
  • 维卷积/矩阵卷积

    万次阅读 2017-07-22 05:09:02
    维卷积/矩阵卷积的计算方程设有矩阵A和矩阵B,它们的卷积结果矩阵的元素可由下列公式计算得来: C(j,k)=∑p∑qA(p,q)B(j−p+1,k−q+1)C(j,k)=\sum_p \sum_q A(p,q) B(j-p+1,k-q+1) 其中的index只要在A,B中valid...
  • 矩阵主序与主序

    万次阅读 2010-03-14 14:06:00
    1.矩阵在内存中的存储 不管是D3D还是OpenGL,使用的矩阵都是线性代数标准的矩阵,只是在存储方式上有所不同。...例如:内存中使用一个维数组m存储矩阵,第i第j的表示方法分别为: 主序:m[i][j] 主序:m
  • 维数组的地址计算 (m*n的矩阵) 优先 设每个元素的大小是size,首元素的地址是a[1][1],则a[i][j]? 分析:a[i][j]位于第i,第j。它之前有i-1,在第i它之前有j-1个元素。 即a[i][j] = a[1][1] + [n*(i-1) ...
  • 接下来就是给出B的之后开始计算对应的x的值,在这里有两种方法,一种就是用回带的方法来计算经过矩阵变化之后B变化之后的样子,但我更倾向于利用矩阵L和数组exchange中储存的变化方式,对B进行操作。两种方法的代码...
  • 协方差矩阵计算

    千次阅读 2016-04-29 20:25:24
    首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述: 均值: 标准差: 方差: 均值描述的是样本集合的中间点,它告诉我们的信息是有限的,而标准差给我们描述的是样本集合的各个样本点...
  • 矩阵中 “优先“ 和 ““ 优先

    千次阅读 2020-01-29 21:26:17
    比如 一个矩阵[m][n] , 表示为 mn列矩阵,表示为优先,当表示为 m 列n的时候就是表示列优先。 一个三维空间中的向量p分别沿着x方向y方向z方向上分别平移为a,b,c距离,用优先的平移矩阵表示为 ,用一个列...
  • 矩阵相关计算

    千次阅读 2016-09-02 10:10:36
    一个矩阵A的余子式(又称余因式)是指将A的某些去掉之后所余下的方阵的行列式。 一个矩阵A的(i, j)代数余子式:Cij 是指A的(i, j)余子式Mij与(−1)i +j的乘积: Cij = (−1)i + j Mij
  • 协方差矩阵计算方法

    千次阅读 2019-09-10 16:40:44
    1. 协方差矩阵 X,YX,YX,Y是两个随机变量,X,YX,YX,Y的协方差Cov(X,Y)Cov(X,Y)Cov(X,Y)定义为: cov(X,Y)=E[(X−μx)(Y−μy)] cov(X,Y) = E[(X-\mu_x)(Y-\mu_y)] cov(X,Y)=E[(X−μx​)(Y−μy​)] 其中: E(X)=μx...
  • Ez是一个关于phi和z的复数矩阵,假设表示phi,表示z,phi取值范围为-180~180(2度一个点),n取值范围为-90~90,z取值范围为-2.5~2.5(0.05一个点),h取值范围为-50~50,那么我根据公式求和运算计算结果和直接...
  • 矩阵基础 (1). 优先和优先的问题 2016年08月18日 18:37:00 林微 阅读数:7351 ...
  • 例题:编写程序,实现矩阵(33)的转置(即行列互换)。 例如,若输入下面矩阵: 1 2 3 4 5 6 7 8 9 则程序输出: 1 4 7 2 5 8 3 6 9 请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所...
  • 常用矩阵微分公式

    万次阅读 2016-03-18 10:11:56
    转自http://www.cnblogs.com/xuxm2007/p/3332035.html 矩阵微分 http://www.iwenchao.com/mathematics/matrix-differential.html http://en.wikipedia.org/wiki/Matrix_calculus http://www.atmos.washington.edu/
  • 协方差矩阵概念及计算

    万次阅读 2017-02-06 16:27:09
    而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了浅谈协方差矩阵 今天看论文的时候又看到了协方差矩阵这个破...
  • 矩阵的按优先存储和按优先存储 a = 1 2 3 4 5 6 7 8 9 优先:[[123][456][789]] 优先:[[147][258][369]] 优先或优先看需求
  • Numpy矩阵与三维矩阵的乘积

    万次阅读 2018-12-04 19:28:58
    np.dot(a, b)----两个矩阵满足第一个矩阵数与第矩阵的行数相同,那么可以进行矩阵的乘法,即矩阵积 np.matmul(a, b)—矩阵运算,矩阵积 matrix情况下 只有multiply是按元素相乘,其它都是矩阵运算。 当...
  • C语言动态维数组实现矩阵的相乘

    万次阅读 2016-12-21 13:41:42
    c语言动态维数组实现矩阵相乘 如何申请动态维数组,代码如下 该方法是最灵活的,可以任意指定行数和数 /* *申请a数组的内存* */ /*先申请每一指针的内存*/ a = (int **)malloc(sizeof(int *)*a_row)...
  • 详解协方差与协方差矩阵计算

    千次阅读 2018-01-26 21:31:18
    对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么...
  • opengl es 2.0 3.0 MVP矩阵计算

    千次阅读 2015-11-13 14:21:18
    Opengl 使用的是列矩阵,即顶点向量等是用列向量的齐次坐标表示的。 另外其矩阵存储方式是“列主序(column-major order)/列优先” 线性代数意义的同一个矩阵,在d3d 和 opengl 中却有不同的
  • 计算混淆矩阵

    千次阅读 2017-10-15 15:43:43
    混淆矩阵的每一代表了预测类别,每一的总数表示预测为该类别的数据的数目,每一代表了数据的真实归属类别,每一的数据总数表示该类别的数据实例的数目,每一中的数值表示真实数据被预测为该类的数目。...
  • opengl的矩阵计算小结

    千次阅读 2014-03-25 21:56:44
    先说一下一些基本的知识: 1、旋转矩阵和平移矩阵有以为主和以为主的,矩阵公式如下:  以为主 以为主  绕X轴:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,622
精华内容 24,248
关键字:

二行二列矩阵计算公式