[英]Matrix algebra in R
我有:x = 1 x 999布朗运动矢量y = 1 x 999布朗运动矢量(我可以很容易地模拟它们)
我想建立一个称为z的1000x1000矩阵,如下所示:-第一行和第一列将充满零-每个其他元素将是x和y的乘积,即z第二列的第二行将是x [ 1] * y [1]等,直到第1000列的第1000行为x [999] * y [999](再举一个例子,第4列的第3行将为x [3] * y [4 ]
我将如何去做呢?
您在寻找outer
:
x <- 1:3
y <- 2:4
cbind(0, rbind(0, outer(x, y)))
# [,1] [,2] [,3] [,4]
# [1,] 0 0 0 0
# [2,] 0 2 3 4
# [3,] 0 4 6 8
# [4,] 0 6 9 12
如果要为每对x
和y
值绘制z
,则可能会发现使用以下命令更方便
to.plot <- expand.grid(x=c(0, x), y=c(0, y))
to.plot$z = to.plot$x * to.plot$y
to.plot
# x y z
# 1 0 0 0
# 2 1 0 0
# 3 2 0 0
# 4 3 0 0
# 5 0 2 0
# 6 1 2 2
# 7 2 2 4
# 8 3 2 6
# 9 0 3 0
# 10 1 3 3
# 11 2 3 6
# 12 3 3 9
# 13 0 4 0
# 14 1 4 4
# 15 2 4 8
# 16 3 4 12
然后,您可以使用以下内容进行绘图:
library(scatterplot3d)
scatterplot3d(to.plot$x, to.plot$y, to.plot$z)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.