由于公司算法需要用到矩阵运算,项目使用的是oc语言开发,在网上各种搜索没有理想的效果之后,决定采用swift混编,如何在oc中调用swift在上一篇播客中已经说过了,现在记录下swift中的一些矩阵运算。
// 矩阵转置
// vDSP_mtransD(matrix, 1, &result, 1, number_of_rows_of_result, number_of_columns_of_result)
//求doublearrayA的矩阵转置矩阵mtresult
//var mtresult = [Double](repeating : 0.0, count : arrayA.count)
//vDSP_mtransD(doublearrayA, 1, &mtresult, 1, 2,vDSP_Length(arrayA.count/2))
//求doublearrayA的逆矩阵nidoublearrayA
// var nidoublearrayA = invert(matrix: doublearrayA)
//矩阵乘法
// vDSP_mmulD(matrix_1, 1, matrix_2, 1, &result, 1, rows_of_matrix_1, columns_of_matrix_2, columns_of_matrix_1_or_rows_of_matrix_2)
//double a[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0};
//double b[] = {10.0, 20.0, 30.0, 40.0, 50.0, 60.0};
//double *result = calloc(9, sizeof(double));
//
//vDSP_mmulD(a, 1, b, 1, result, 1, 3, 3, 2);
//
//for (int i = 0; i < 9; i ++) {
// NSLog(@"%f",result[i]);
//}
//
//free(result);
网友评论