Посмотрите на размеры: вы определяете
Xt[1,] = X[1,]
, что дает вам 6x1-matrix
. Следующим шагом будет вычисление
F * Xt[1,] + V
Поскольку F
и V
имеют размер 6x6
, получается новый 6x6-matrix
. Проверьте с помощью
dim(as.matrix(X[t,1]))
dim(F)
dim(V)
Теперь Xt
сам тусклый 101x6
, поэтому Xt[n,]
, что немного неинтуитивно, дает транспонированный объект 6x1
. Итак, внутри вашего l oop вы пытались назначить объект
F * Xt[i-1,] + V
dim(F * Xt[i-1,] + V) # this gives 6x6
на
Xt[i,]
dim(as.matrix(Xt[i,])) # this gives 6x1
Таким образом, ваши размеры не подходят. Я надеюсь, что это ответит на ваш вопрос.
У меня есть одна аннотация:
F * Xt[1,] + V
Умножение F*Xt[1,]
- это поэлементное умножение, а не классическое умножение матрицы на вектор. Если вы хотите выполнить умножение A*b
на mxn
-матрицу A
и nx1
-вектор b
, вы должны вместо этого использовать %*%
. В этом случае V
должен иметь размер mx1
.