R语言中两个数组(或向量)的外积怎样计算

如题所述

所谓数组(或向量)a和b的外积,指的是a的每一个元素和b的每一个元素搭配在一起相乘得到的新元素.当然运算规则也可自定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).例如:

[plain] view plain copy
> a <- 1:2
> b <- 3:5
> d <- a %o% b
> d
[,1] [,2] [,3]
[1,] 3 4 5
[2,] 6 8 10

注意维数公式为:
[plain] view plain copy
dim(d) = c( dim(a) , dim(b) )

实际上R语言提供了一个更为一般化得外积函数outer(X,Y,Fun),比较简单,看个示例吧.

下面的例子是为了绘制 z = x**2 +50cos(y)的3维表面图:

[plain] view plain copy
> x <- seq(from = -5, to = 5, by = 0.25)
> y <- seq(from = -2, to = 2, by = 0.1)
> f <- function(x,y){x**2+50*cos(y)}
> z <- outer(x,y,f)
> persp(x,y,z)
温馨提示:答案为网友推荐,仅供参考
相似回答