2013-02-09 24 views
-2

我需要相乘的,我用下面的代码矩阵:如何在方法中声明2个矩阵接收器变量?

- (NSNumber *)matrixsender 
{ 
    double matrix[4][2] = {}; 
    double vectorsend[4] = {}; 
    [self matrix_multiply:matrix[4][2]:vectorsend[4]]; 
} 


-(NSNumber *)matrix_multiply:(double) mat:(double)vector 
{ 
    double vector_result[] = vector.Length; 
    for (int i = 0; i < vector.Length; i++) { 
     for (int j = 0; j < mat.GetLength(1); j++) { 
      vector_result[i] += mat[i][j]*vector[j]; 
     } 
    } 

    return [NSNumber numberWithDouble:vector_result[]]; 
} 

实际上,它来自C#代码,但我不能把它转换为Objective-C的话,我建在Objective-C矩阵码,但它没有工作。

我该如何构建它?

+0

“在Xcode中”你不能声明变量。你的意思是“在Objective-C代码中”? – 2013-02-09 08:54:40

+1

@OP:***不,你没有加回Xcode标签!***这与Xcode无关。 – 2013-02-09 08:59:28

+0

我想说,这是更多的交流问题比Objective-C – 2013-02-09 10:05:06

回答

0
double **matrix_mult(double *a, double *b, int nr1, int nc1, int nc2) { 
    double **c; 
    int i, j, k; 
    c = malloc(sizeof(double *) * nr1); 
    for (i = 0; i < nr1; i++) { 
    c[i] = malloc(sizeof(double) * nc2); 
    for (k = 0; k < nc2; k++){ 
     c[i][k] = 0.0; 
     for (j = 0; j < nc1; j++) c[i][k] += (a[i][j]) * (b[j][k]); 
    } 
    } 
    return c; 
} 

double *c = matrix_mult(a,b,4,4,4) 
+0

谢谢你们所有人通知that.But你的代码无法运行,因为'matrix_mult(a,b,4,4,4)'哪a和b是矩阵,你能再帮助我吗? – 2013-02-11 20:03:22