如何将double
/ float
类型的矢量或矩阵转换为 word
/ uword
类型的矢量或矩阵?
我需要创建一个索引数组indices
。
vec t = linspace(0, 100);
double freq = 0.25;
indices = floor(t / freq);
我在最后一行遇到了麻烦。
答案 0 :(得分:6)
如果您只是处理正值,那么armadillo包的conv_to函数将与您尝试使用的方法完全相同。
vec t = linspace(0, 100);
double freq = 0.25;
ivec indices = conv_to<ivec>::from(t / freq);
如果您希望结果与使用负值t的floor函数相同,则可以用
替换最后一行ivec indices = conv_to<ivec>::from(floor(t / freq));
答案 1 :(得分:0)
最好的办法是使用迭代器遍历t向量,然后将floor( *it_to_t / freq )
的结果推回到索引向量上。