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 从矩阵中追加/删除列或行?
如何使用 vDSP / Accelerate in swift for iOS 计算向量元素的平方根