此代码适用于乘法2矩阵,它发送矩阵a和矩阵b,它们指向matrixMultiply方法。
但我在“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.This代码在ViewController.m中声明
答案 0 :(得分:0)
你确定Matrix1是一个二维矩阵吗?它在一维矩阵中声明:double * matrix1而不是“double ** matrix1” 这可能就是为什么行矩阵12 [i] [j] + = matrix1 [i] [k] * matrix2 [k];不起作用。