iOS:使用 Accelerate Framework 从矩阵中追加/删除列或行?

iOS: Using Accelerate Framework to append / remove a column or row from a matrix?

我查看了 vDSP and BLAS 参考文档,但似乎找不到关于从矩阵中追加/删除行或列的任何内容。我目前正在使用 for 循环,但如果存在加速函数,我宁愿使用它。

我们可以使用vDSP_mmov(1) or vDSP_mmovD(2)。下面的示例在末尾附加 1 行。

//sanple to add 1 row
float dst[4][4] = { 1,2,3,4, 5,6,7,8, 9,10,11,12 } ; //last row empty
float src[1][4] = { 13,14,15,16 };
//to fill last row
int numColumnsToCopy = 4;
int numRowsToCopy = 1;
int numColsinDst = 4; 
int numColsinSrc = 4;
vDSP_mmov(src, &dst[3][0], numColumnsToCopy, numRowsToCopy, numColsinSrc, numColsinDst );

同样的样本最后可以调整为 append/remove rows/columns。虽然你可以在中间覆盖 rows/columns,但我不确定你是否可以 append/remove a row/column in middle of matrix 因为那需要 班次。那你可能需要拆分。

虽然一次性使用没有坏处,但您可能无法获得想要的速度优势。对于重复运行,这些框架会有所帮助。