由于公司算法需要用到矩陣運算,項目使用的是oc語言開發(fā),在網(wǎng)上各種搜索沒有理想的效果之后,決定采用swift混編,如何在oc中調(diào)用swift在上一篇播客中已經(jīng)說過了,現(xiàn)在記錄下swift中的一些矩陣運算。
// 矩陣轉(zhuǎn)置
// vDSP_mtransD(matrix, 1, &result, 1, number_of_rows_of_result, number_of_columns_of_result)
//求doublearrayA的矩陣轉(zhuǎn)置矩陣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);