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

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

【问题讨论】:

    标签: objective-c matrix accelerate-framework


    【解决方案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。那你可能需要分开了。

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

    【讨论】:

    • 哇,谢谢基兰!我不敢相信我错过了。让我看看我能做什么!
    猜你喜欢
    • 2018-08-16
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 2013-07-22
    • 2021-11-14
    • 2015-05-09
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多