矩阵乘法作为外积之和

问题描述 投票:0回答:0

我写了下面的矩阵乘法函数。

void sum_of_outer_product(float* A, float* B, float* &C, int M, int N)
{
    C = (float*) malloc(sizeof(float) * M * N);
    memset(C, 0, M * N * sizeof(float));
    for(int r=0 ; r<M ; r++)
    {
        for(int c=0 ; c<N ; c++)
        {
            for(int cc=0 ; cc<N ; cc++)
            {
                C[r * N + c] += A[r * N + c] * B[r * N + cc];
            }
        }
    }
}

但是,它们产生的结果与原始矩阵乘法(带转置)不同:

正确:

 30  36  42
 66  81  96
102 126 150

这个套路:

 12  24  36
 60  75  90
126 144 162

我做错了什么?

c matrix-multiplication
© www.soinside.com 2019 - 2024. All rights reserved.