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

Posted

技术标签:

【中文标题】iOS:使用 Accelerate Framework 从矩阵中追加/删除列或行?【英文标题】:iOS: Using Accelerate Framework to append / remove a column or row from a matrix? 【发布时间】:2015-05-16 22:32:43 【问题描述】:

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

【问题讨论】:

【参考方案1】:

我们可以使用 vDSP_mmov(1) 或 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 );

可以调整相同的示例以在末尾追加/删除行/列。虽然您可以覆盖中间的行/列,但我不确定您是否可以在矩阵的 middle 中追加/删除行/列,因为这需要 shifts。那你可能需要分开了。

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

【讨论】:

哇,谢谢基兰!我不敢相信我错过了。让我看看我能做什么!

以上是关于iOS:使用 Accelerate Framework 从矩阵中追加/删除列或行?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Accelerate Framework 将 iOS 相机图像转换为灰度?

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

Accelerate 的 vImage 与 vDSP

如何使用 vDSP / Accelerate in swift for iOS 计算向量元素的平方根

iOS — 确定 Accelerate.framework 在运行时是不是可用

如何使用 iOS Accelerate 框架正确填充 FFT 的二维数组