Я бы хотел округлить матрицу M
с произвольной точностью в R cpp. Это особенно легко сделать в R:
M <- matrix(rnorm(4), 2, 2)
M
[,1] [,2]
[1,] 0.04463484 0.1455878
[2,] 1.77416096 1.0787835
round(M,2)
[,1] [,2]
[1,] 0.04 0.15
[2,] 1.77 1.08
Это оказывается немного сложным в R cpp / C ++.
Существует функция round()
, однако она, к сожалению, округляет только до ближайшего целого числа. Для целей вывода, например, формат "%.2f"
может использоваться для округления до двух десятичных знаков. Если округленные числа должны использоваться в дальнейших вычислениях, можно округлить один элемент с произвольной точностью, играя с функциями floorf
, roundf
и ceilingf
, используя вручную настроенные различные коэффициенты масштабирования, см. Обсуждение и предлагаемые решения здесь .
Следовательно, возможный путь продвижения вперед заключается в применении вышеупомянутого подхода к каждому элементу (или более эффективно к каждому столбцу) матрицы M
. Это кажется излишне сложным, и мне было интересно, есть ли у кого-нибудь из вас более эффективное / элегантное решение для округления матриц с произвольной точностью в R cpp.