Aprofundando em Matrizes
Construção de matrizes,operações aritméticas e lógicas
A=matrix(c(5,0,2,3,7,8),byrow=T,nrow = 3)
B=matrix(c(4,3,1,1,2,0),byrow=T,nrow = 3)
X=A-B
X[X>-3] #Elementos da matriz maiores que -3
## [1] 1 1 5 2 8
X[X%%2 == 0] #Elementos da matriz que são pares
## [1] 2 8
X=3*A+B
diag(2) #Criando uma matriz diagonal
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
Transposição de matrizes, simetrias e produtos
## [,1] [,2] [,3]
## [1,] 5 2 7
## [2,] 0 3 8
isSymmetric(A)## verificando se B é uma matriz simétrica ( Ela é igual a sua transposta? )
## [1] FALSE
C=matrix(c(0,2,-3,-2,0,-1,3,1,0),byrow=T,nrow=3)
t(C)==-C ## É uma matriz anti-simétrica?
## [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
## [3,] TRUE TRUE TRUE
#A %*% B #O produto de A e B existe?
D = matrix(c(3,6,2,4),byrow=T,nrow=2)
A %*% D
## [,1] [,2]
## [1,] 15 30
## [2,] 12 24
## [3,] 37 74
Cálculo de determinantes, inversas, padronização, nomeação e adição de dimensões
det(D) #Calculando o determinante
## [1] 0
E=matrix(c(4,3,1,1),byrow=T,nrow = 2)
det(E) #Calculando o determinante
## [1] 1
solve(E) # Inversa da matriz L ( L %*% X = I)
## [,1] [,2]
## [1,] 1 -3
## [2,] -1 4
cbind(D, c(1, 2)) #Adicionando coluna
## [,1] [,2] [,3]
## [1,] 3 6 1
## [2,] 2 4 2
rbind(D, c(1, 2)) #Adicionando linha
## [,1] [,2]
## [1,] 3 6
## [2,] 2 4
## [3,] 1 2
rownames(D)=c("A","B") # nomeando linhas
colnames(D)=c("A","B") # nomeando colunas
scale(D) #padronizando uma matriz no R (Tirando a média e dividindo pelo desvio)
## A B
## A 0.7071068 0.7071068
## B -0.7071068 -0.7071068
## attr(,"scaled:center")
## A B
## 2.5 5.0
## attr(,"scaled:scale")
## A B
## 0.7071068 1.4142136
cbind( (D[,1]-mean(D[,1]) )/sd(D[,1]),(D[,2]-mean(D[,2]) )/sd(D[,2])) #padronizando na mão
## [,1] [,2]
## A 0.7071068 0.7071068
## B -0.7071068 -0.7071068