c ++ armadillo cast / convert to integer type vector或matrix

时间:2014-12-29 19:44:15

标签: c++ casting armadillo

如何double / float类型的矢量或矩阵转换为 word / uword类型的矢量或矩阵


我需要创建一个索引数组indices

vec t = linspace(0, 100);
double freq = 0.25;
indices = floor(t / freq);

我在最后一行遇到了麻烦。

2 个答案:

答案 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 )的结果推回到索引向量上。