R语言里%*%是怎么运算的?

Python044

R语言里%*%是怎么运算的?,第1张

这里的%*%表示矩阵乘法的意思,其运算规律如下:

也可理解成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

mat =as.data.frame(diag(9))

for( i in 1:9){

 for(j in 1:9)

if(i>=j)

 {mat[i,j]=paste(i,'x',j,'=',i*j)

}

else {mat[i,j]=''}

}

mat

运行上述就可以得出

%*%表示通常意义下的两个矩阵的乘积。而矩阵乘积只有在第一个矩阵的列数(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"