c++ - 使用一维数组的矩阵乘法

标签 c++ math matrix matrix-multiplication

我正在尝试将存储在一维数组中的两个矩阵相乘。

我正在使用这个函数,但我的程序崩溃了,我假设是由于越界错误。 但是,我没有(容易)调试的能力,所以我必须确定我的代码是否正确,对我来说似乎是......

void SampleUtils::multiplyMatrices(float* matA, int rA, int cA, float* matB,
        int rB, int cB, float* matC, int rC, int cC) {
    for (int i = 0; i <= rA; i++) {
        for (int j = 0; j <= cB; j++) {
            float sum = 0.0;
            for (int k = 0; k <= rB; k++)
                sum = sum + matA[i * cA + k] * matB[k * cB + j];
            matC[i * cC + j] = sum;
        }

    }

那么,有人能找出我做错了什么吗?

谢谢...

最佳答案

您的意思可能是 <而不是 <=在你的for循环。

关于c++ - 使用一维数组的矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10252621/

相关文章:

Android 转向检测数学

c++ - 任何为 C++ 提供 betainv 的库

python - 如何在 pandas 矩阵中搜索值并给出列名称?

java - 使用 EJML 计算线性系统

c++ - 避免模​​板化类型的过度重复

c++ - C++基于范围的for循环会调用迭代器的析构函数吗?

java余弦相似度问题

python - 将二进制 numpy 矩阵中的连续 1 block 翻转到一定大小

c++ - 具有非双射参数类型映射的 C 函数到 C++ 实例成员蹦床

c++ - 代码如何在 C++ 抽象机上存储和执行?