Как указать наивысший компонент индексированного массива? - PullRequest
0 голосов
/ 15 января 2019

Предположим, что в файле stan следующее.

transformed parameters {

  real <lower=0,upper=1>p[C];

}

где C - положительное целое число, указанное в блоке данных.

Тогда с помощью p[1] мы можем извлечь первый компонент. p[C] также извлечь C -й компонент? Или p[C] обозначает набор p[1],p[2],....p[C]?

Например, что означает код p[C] = 1?

1) ТОЛЬКО C-й компонент p равен единице

или

2) ВСЕ компоненты p (т. Е. p[1],p[2],....p[C]) - это один.

1 Ответ

0 голосов
/ 16 января 2019

В вашем примере,

transformed parameters {
  real<lower = 0, upper = 1> p[C]; // multivalued
  p[C] = 1; // scalar
}

Первые C-1 элементы p не определены, что, вероятно, не очень хорошо, хотя это допустимый синтаксис.

С другой стороны,

transformed parameters {
  real<lower = 0, upper = 1> p[C] = rep_array(1, C);
}

определяет все элементы p как 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...