这里的%*%表示矩阵乘法的意思,其运算规律如下:
也可理解成m3[a,b]即是m1的第a行和m2的第b列对应元素先分别乘积,再求和,所以:
m3[1,1] =m1[1,1]×m2[1,1]+m1[1,2]×m2[2,1]=1×1+3×2=7
m3[2,1] =m1[2,1]×m2[1,1]+m1[2,2]×m2[2,1]=2×1+4×2=10
m3[2,2] =m1[2,1]×m2[1,2]+m1[2,2]×m2[2,2]=2×3+4×4=22
%*%表示通常意义下的两个矩阵的乘积。而矩阵乘积只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。
x+y加法
x-y减法
x*y乘法
x/y除法
x^y乘幂
x%%y模运算
x%/%y整数除法
x==y判断是否相等
x <= y判断是否小于等于
x >= y 判断是否大于等于
x &&y 标量的逻辑“与”运算
x||y标量的逻辑“或”运算
x &y 向量的逻辑“与”运算(x、y以及运算结果都是向量)
X|y的逻辑“或”运算(x、y以及运算结果都是向量)
!x逻辑非
扩展资料
R语言表面上没有标量的类型,因为标量可以看作是含有一个元素的向量,但我们看到表中,逻辑运算符对标量和向量有着不同的形式,这虽然看起来很奇怪,但这种区别很有必要。
>x <- c( TRUE, FALSE, TRUE )
>y <- c( TRUE, TRUE, FALSE )
>x &y
[1]TRUEFALSEFALSE
>x[1] &&y[1]
[1]TRUE
>x &&y
[1]TRUE
>if( x[1] &&y[1] ) print( "both TRUE" )
[1]"bothTRUE"
>if( x &y ) print( "both TRUE" )
[1]"bothTRUE"
摘自: https://www.cnblogs.com/yupeter007/p/5325575.html
矩阵的存储默认是按列进行存储的
matrix (data = NA, nrow = 1, ncol = 1, byrow =FALSE, dimnames = NULL)
创建一个c(1:12)的三行四列的矩阵,
colnames<-c("c1","c2","c3","c4")
rownames<-c("r1","r2","r3")
x<-matrix(1:12,nrow=3,ncol=4,byrow=TRUE,dimnames=list(rownames,colnames))
x
c1 c2 c3 c4
r1 1 2 3 4
r2 5 6 7 8
r3 9 10 11 12
y<-t(x)
若是针对的是一个向量
y<-(1:10)
装置后得到的是行向量
[1] "matrix"
若要的到列向量则
matrix(rnorm(100),nrow=10)
matrix(2,ncol=n,nrow=m)
4.1创建对角矩阵
diag(x,ncol=n,nrow=m)
若x为矩阵 则diag(x)将会提取矩阵x的对角,则返回的是向量值
返回的是以矩阵对角的对角矩阵
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
n<-ncol
m<-nrow
为矩阵的行和列命名
rownames(x)<-c()
colnames(x)<c()
A为m×n矩阵,c>0,在R中求cA可用符号:“*”,例如:
A为m×n矩阵,B为n×k矩阵,在R中求AB可用符号:“%*%”,例如:
对矩阵求逆
方法一:直接用solve(x)
方法二:加载包MASS
library(MASS)
ginv(matrix)
向量的内积
x<-c(1:5)
y<-c(3:7)
向量的外积
向量、矩阵的外积(叉积)
设x和y是n维向量,则x%o%y表示x与y作外积.
, , 2, 1
[,1] [,2] [,3] [,4]
[1,]28 14 20
[2,]4 10 16 22
[3,]6 12 18 24
, , 1, 2
[,1] [,2] [,3] [,4]
[1,]3 12 21 30
[2,]6 15 24 33
[3,]9 18 27 36
, , 2, 2
[,1] [,2] [,3] [,4]
[1,]4 16 28 40
[2,]8 20 32 44
[3,] 12 24 36 48
outer()是更为强大的外积运算函数,outer(x,y)计算向量x与y的外积,它等价于x %o%y
函数。outer()的一般调用格式为
outer(x,y,fun=”*”)
det(x),求矩阵x的行列式值
qr(x)$rank求x矩阵的秩
解线性方程组和求矩阵的逆矩阵