stan中的整数矩阵变得扁平化

时间:2017-11-19 07:55:49

标签: stan rstan

我试图将三维数据结构传递给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)

意思是,显然,由于某种原因(我不明白)输入数组变得扁平化。我给它一个简单的3d数组,没有NAs,在我通过之前尺寸看起来正确。实际上,对于2D阵列也会发生同样的事情,这意味着我甚至无法声明一组2d矩阵,作为一种解决方法。

然后我试了

row_vector[K] x[N,N];

但是这会返回real,而不是int。当我做像

这样的事情

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

这只是不正确的语法。

我也试过传递逻辑值,希望它们能够重新投射为整数,但不是。我传递了数组,我用as.matrix传递了它们,我在放入数据列表之前和之后检查了它们的维度。

这是在OSX 10.11.6上的R版本3.4.1,使用最新版本的stan,它刚刚从源代码编译而来。

我错过了什么?或者,我如何将单个实数转换为整数,以便需要整数的函数不会中断?

(并且,文档是什么?我能找到的最好的是长期评论的帖子。)

0 个答案:

没有答案