我想使用Accelerate Framework库对数据(x和y值对)进行排序。
我使用函数vDSP_vsorti查找具有x数据排序索引的向量。现在,我应该根据x排序索引的顺序对y数据进行重新排序。
我怎么能做到呢?Accelerate Framework中是否有重新排序向量的函数?
发布于 2015-08-23 08:36:32
你会用vDSP_vgathr吗?此API使用另一个索引向量从一个向量中获取值。
以下是摘要:单向量收集该组中的函数使用存储在一个源向量中的索引或指针来生成一个新的向量,其中包含从第二个源向量或从内存中选择的元素。
vDSP_vgathr矢量聚集;单精度。
声明SWIFT
func vDSP_vgathr(_ __vDSP_A: UnsafePointer<Float>, _ __vDSP_B: UnsafePointer<vDSP_Length>, _ __vDSP_J: vDSP_Stride, _ __vDSP_C: UnsafeMutablePointer<Float>, _ __vDSP_K: vDSP_Stride, _ __vDSP_N: vDSP_Length)
OBJECTIVE-C
void vDSP_vgathr ( const float *__vDSP_A, const vDSP_Length *__vDSP_B, vDSP_Stride __vDSP_IB, float *__vDSP_C, vDSP_Stride __vDSP_IC, vDSP_Length __vDSP_N );参数__vDSP_A
单精度实输入向量__vDSP_B
包含索引__vDSP_J的整数向量
B __vDSP_C的Stride
单精度实输出向量__vDSP_K
C __vDSP_N的Stride
要处理讨论的元素数执行以下操作:
使用矢量B的元素作为索引,将矢量A的选定元素复制到矢量C中的连续位置。请注意,在计算索引时,1而不是零被视为输入矢量中的第一个位置。此函数只能在不合适的位置执行。
https://stackoverflow.com/questions/31037184
复制相似问题