Как хранить несколько матриц под одной переменной, чтобы я мог выполнять вычисления? - PullRequest
0 голосов
/ 04 февраля 2019

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

Это мой ввод

j = list(matrix(c(0,1,2,3),nrow=2,ncol=2,byrow=TRUE), matrix(c(7,6,5,4),nrow=2,ncol=2,byrow=TRUE))

j[1]
j[1]%*%j[2]
t(j[1])
t(j[1])%*%j[1]

Это мой вывод

> j = list(matrix(c(0,1,2,3),nrow=2,ncol=2,byrow=TRUE), matrix(c(7,6,5,4),nrow=2,ncol=2,byrow=TRUE))
> j[1]
[[1]]
     [,1] [,2]
[1,]    0    1
[2,]    2    3

> j[1]%*%j[2]
Error in j[1] %*% j[2] : requires numeric/complex matrix/vector arguments
> t(j[1])
     [,1]     
[1,] Numeric,4
> t(j[1])%*%j[1]
Error in t(j[1]) %*% j[1] : 
  requires numeric/complex matrix/vector arguments

Спасибо ввперед.

1 Ответ

0 голосов
/ 04 февраля 2019

Когда вы делаете j[1], вы получаете

#[[1]]
#     [,1] [,2]
#[1,]    0    1
#[2,]    2    3

, который все еще является списком.

class(j[1])
#[1] "list"

Вместо этого вам нужно было j[[1]], чья class - матрица

class(j[[1]])
#[1] "matrix"

j[[1]] %*% j[[2]]
#     [,1] [,2]
#[1,]    5    4
#[2,]   29   24

t(j[[1]]) %*% j[[1]]
#     [,1] [,2]
#[1,]    4    6
#[2,]    6   10

Я бы предложил прочитать этот пост, чтобы понять разницу между индексированиемоператоры.

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