C++ Armadillo如何将向量或矩阵转换为整数类型?

5
我该如何将一个double/float类型的向量或矩阵转换成word/uword类型的向量或矩阵?
我需要创建一个索引数组indices
vec t = linspace(0, 100);
double freq = 0.25;
indices = floor(t / freq);

我在最后一行遇到了问题。


2
使用conv_to:http://arma.sourceforge.net/docs.html#conv_to - mtall
2个回答

7
如果你只涉及正数值,那么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));

0
你最好使用迭代器遍历你的 t 向量,然后将 floor( *it_to_t / freq ) 的结果推回到你的索引向量中。

并不是一个源代码,只是在日常使用向量方面的经验。 - Rubix Rechvin
1
那么,这比使用 conv_to 更好吗? - Brian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接