原创 c语言求矩阵相乘和矩阵装置

2011-7-25 22:14 1855 5 5 分类: 处理器与DSP

最近研究矩阵的特征向量和特征值,今天把矩阵的QR分解算是搞定了,明天在根据QR分解求矩阵特征值和特征向量。

程序如下:

/* 求矩阵的转置,col和row分别是被求矩阵pMatrix的列和行 */
void MatrixTranspose(float *pMatrix,UINT32 col,UINT32 row,float *pOut)
{
    UINT32 i,j;
    UINT32 n = 0;
    for(i = 0; i < row; i++)
    {
        for(j = 0; j < col; j++)
        {
            pOut[j*3 + i] = pMatrix[j+n];
        }
        n += 3;
    }
}

/* 矩阵乘法,目前仅限方阵 */
void MultiplyMatrixAxB(float *pMatrixA,float *pMatrixB,UINT32 col,float *pMatrixC)
{
    UINT32 i,j,n;
    float fSum = 0;
    float fTemp = 0;
    for(i = 0; i < col; i++)
    {
        for(n = 0; n < col; n++)
        {
            for(j = 0; j < col; j++)
            {
                fTemp = pMatrixA[i * col + j] * pMatrixB[j * col + n];
                fSum += fTemp;
            }
            pMatrixC[i * col + n] = fSum;
            fSum = 0;
        }
    }
}

仿真结果:

A'代表A的转置,C = A * B;

20110725220900001.gif

rar.gifCalcMatrix.rar

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条