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

Assigning values in one vector to indices in another vector?

基本上我一直在尝试分配一个新向量,其值来自 another.This 可以使用顺序完成:

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

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

但是如果我想在 B 中有 C 的索引怎么办?填充 A.

中的元素

希望有人能帮忙。

他想要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 是否可以重复使用。