【发布时间】:2013-02-13 14:03:50
【问题描述】:
此代码适用于将矩阵 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 中声明
【问题讨论】:
-
“你能把它修好吗?” - 不完全正确。我不知道它应该做什么,它目前做什么,以及你会为此付出多少。
-
什么是
b?我猜b[k]应该替换为matrix2[k] andmatrix1[i][k]` 应该替换为matrix1[n]与n是i或k或j左右。这很难说,只是猜测而不知道你想要实现什么。但是matrix1是double*你不应该访问第二维度。 -
感谢您的评论。
-
我把 double* 改成什么了?
-
它是纯 C,而不是 Objective-C。
标签: objective-c c math matrix