[英]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.