C 尝试将两个矩阵中的元素相乘时,二进制操作数无效

C 尝试将两个矩阵中的元素相乘时,二进制操作数无效,c,matrix,C,Matrix,在一个方法中,我有一个m*n矩阵和一个分配为m*1矩阵的数组,不幸的是,在编译过程中,我遇到了以下错误: main.c:337:30: error: invalid operands to binary * (have ‘float’ and ‘float *’) yp += matrixA[i][j] * listB[j]; 该方法的完整代码如下 float error(float **matrixA, float **listB, int m, int n

在一个方法中,我有一个m*n矩阵和一个分配为m*1矩阵的数组,不幸的是,在编译过程中,我遇到了以下错误:

main.c:337:30: error: invalid operands to binary * (have ‘float’ and ‘float *’)
                 yp += matrixA[i][j] * listB[j];
该方法的完整代码如下

float error(float **matrixA, float **listB, int m, int n) {
    int i, j;
    float err = 0, de, yp;

    for (i = 0; i < m; i++) {
        yp = 0;
        for (j = 0; j < n; j++)
            yp += matrixA[i][j] * listB[j];
        de = fabs(matrixA[i][j]-yp);
        err += (de*de);
    }
    return err;
}
matrixA和listB使用相同的分配方法

为什么会出现这种错误? 我该怎么修理

listB[j]是float*类型。将其与浮点类型相乘。改变

yp += matrixA[i][j] * listB[j];  

matrixA[i][j]*listB[j]看:float**matrixA,float**listB,有‘float’和‘float*’,这真的说明了一切……listB[j]类型是float*
yp += matrixA[i][j] * listB[j][i];