Когда я вывожу 'mat', он работает как положено, причем mat дает полный список матриц, а mat [1], mat [2] и mat [3] дают первый второй и третий элементы, а именно матрицы 4x4 свсе записи равны 1, 2 и 3 соответственно.
Однако, когда я пытаюсь добавить новый элемент или изменить существующий, я получаю ошибку, и вместо добавления матрицы 4x4 в список, это простодобавляет обычное число.
Как добавить новую матрицу в список?Я также открыт для использования альтернатив list ().Я относительно новичок в R, и я всегда использовал x = c (), но, похоже, это не работает и для матриц.Заранее спасибо.
Ввод:
mat = list( matrix (c(1), nrow = 4, ncol = 4, byrow = TRUE),
matrix (c(2), nrow = 4, ncol = 4, byrow = TRUE),
matrix (c(3), nrow = 4, ncol = 4, byrow = TRUE) )
mat
mat[2]
mat[1] = matrix(c(0), nrow = 4, ncol = 4, byrow = TRUE)
mat[4] = matrix(c(4), nrow = 4, ncol = 4, byrow = TRUE)
mat
Выход:
> mat = list( matrix (c(1), nrow = 4, ncol = 4, byrow = TRUE),
+ matrix (c(2), nrow = 4, ncol = 4, byrow = TRUE),
+ matrix (c(3), nrow = 4, ncol = 4, byrow = TRUE) )
> mat
[[1]]
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 1 1 1 1
[3,] 1 1 1 1
[4,] 1 1 1 1
[[2]]
[,1] [,2] [,3] [,4]
[1,] 2 2 2 2
[2,] 2 2 2 2
[3,] 2 2 2 2
[4,] 2 2 2 2
[[3]]
[,1] [,2] [,3] [,4]
[1,] 3 3 3 3
[2,] 3 3 3 3
[3,] 3 3 3 3
[4,] 3 3 3 3
> mat[2]
[[1]]
[,1] [,2] [,3] [,4]
[1,] 2 2 2 2
[2,] 2 2 2 2
[3,] 2 2 2 2
[4,] 2 2 2 2
> mat[1] = matrix(c(0), nrow = 4, ncol = 4, byrow = TRUE)
Warning message:
In mat[1] = matrix(c(0), nrow = 4, ncol = 4, byrow = TRUE) :
number of items to replace is not a multiple of replacement length
> mat[4] = matrix(c(4), nrow = 4, ncol = 4, byrow = TRUE)
Warning message:
In mat[4] = matrix(c(4), nrow = 4, ncol = 4, byrow = TRUE) :
number of items to replace is not a multiple of replacement length
> mat
[[1]]
[1] 0
[[2]]
[,1] [,2] [,3] [,4]
[1,] 2 2 2 2
[2,] 2 2 2 2
[3,] 2 2 2 2
[4,] 2 2 2 2
[[3]]
[,1] [,2] [,3] [,4]
[1,] 3 3 3 3
[2,] 3 3 3 3
[3,] 3 3 3 3
[4,] 3 3 3 3
[[4]]
[1] 4