Целочисленная матрица в стане становится плоской

Я пытаюсь передать трехмерную структуру данных в Stan (в RStan), где записи должны быть целыми числами, потому что это требуется для функции в нисходящем направлении. Однако я испытываю затруднения, объявляя это.

Я попробовал прямой подход:

int x[n,n,k];

Но это дало мне ошибку

mismatch in number dimensions declared and found in context; ... dims declared=(n,n,k); dims found=(n*n*k)

Ясно, что по какой-то причине входной массив сглаживается (чего я не понимаю). Я даю ему простой трехмерный массив, без NA, размеры выглядят прямо перед тем, как я его пропущу. И на самом деле, то же самое происходит и с двумерными массивами, а это означает, что я даже не могу объявить набор двумерных матриц в качестве обходного пути.

Потом я попробовал

row_vector[K] x[N,N];

но это возвращает realне int, И когда я делаю что-то вроде

int row_vector[K] x[N,N];

это просто неправильный синтаксис.

Я также попытался передать логические значения, надеясь, что они будут преобразованы в целые числа, но нет. Я передал массивы, передал их с помощью as.matrix, я проверил их размерность как до, так и после внесения в список данных.

Это с версией 3.4.1 R на OSX 10.11.6, использующей самую последнюю версию stan, которая была только что скомпилирована из исходного кода, сегодня.

Что мне не хватает? ИЛИ, как я могу привести единственное действительное число к целому числу, чтобы целочисленная функция не ломалась?

(И, ГДЕ это документация? Лучшее, что я могу найти, это давно мертвые комментарии.)

0 ответов

Другие вопросы по тегам