-3

此代码适用于将矩阵 a 和矩阵 b 发送到 matrixMultiply 方法的乘法 2 矩阵。

但我在“matrix12[i][j] += matrix1[i][k] * matrix2[k];”这一行遇到了麻烦

double **matrixMultiply(double *matrix1,double *matrix2,int row1,int col1,int col2){

    double **matrix12 = malloc(sizeof(double*)*row1);
    for (int i=0; i<row1; i++){
        matrix12[i] = malloc(sizeof(double*)col2);

        for (int j=0; j<col2; j++){
            matrix12[i][j] = 0.0;

            for (int k=0; k<col1; k++){
                matrix12[i][j] += matrix1[i][k] * matrix2[k]; //invalid operands to binary expression
            }
        }
    }
    return matrix12;
}

double *kmult = *matrixMultiply(a, b, 4, 4, 4,);

Ps.这段代码在 ViewController.m 中声明

4

1 回答 1

0

你确定 Matrix1 是一个二维矩阵吗?它是在一维矩阵中声明的: double *matrix1 而不是 "double **matrix1" 这可能就是为什么行 matrix12[i][j] += matrix1[i][k] * matrix2[k]; 不起作用。

于 2013-02-13T14:33:41.033 回答