将一个向量中的值分配给另一个向量中的索引?

时间:2017-01-12 15:09:38

标签: swift accelerate-framework

基本上我一直试图用另一个值来分配一个新的向量。这可以按顺序完成:

vDSP_vindex(A,B,Stride,C,Stride,Length)

因此,如果A有10个元素,B有20个索引,C有20个元素;我们使用B中定义的索引中的A中的元素来分配C中的所有值。

但是如果我想在B中得到C的指数怎么办?用A。中的元素填充。

希望有人可以帮忙解决这个问题。

1 个答案:

答案 0 :(得分:1)

他想要C [B [i]] = a [i]而不是C [i] = a [B [i]]。这种结构的问题在于,不能保证C中的所有元素都被定义,或者当B中的两个索引相同时会发生什么 - 哪一个最终在C中?

假设这些问题不会给您带来麻烦,您需要将B [i]中的元素转换为其他公式的正确值。这只是一个问题:

initialize Bprime[] to a default value for undefined.
for each i in [0,N)
    Bprime[B[i]] = i;
vDSP_vindex(A,Bprime,Stride,C,Stride,N)

这是否值得,可能完全取决于Bprime是否可以重复使用。