【发布时间】:2014-10-11 07:02:56
【问题描述】:
我想用 R 绘制一个汉克尔矩阵,只使用 R 的 matrix()、seq() 和 rep() 函数。到目前为止,我以某种方式绘制这个:
#Do this exercise with other packages, need to rework
install.packages("matrixcalc")
library(matrixcalc)
E1 <- hankel.matrix( 5, seq( 1, 9 ) )
print(E1)
#Use matrix() only, not efficient
E2 <- matrix(c(1,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,5,6,7,8,9), ncol=5)
print(E2)
#Use seq() but not worked
E3 <- matrix(c(seq(1:5),seq(2:6),seq(3:7),seq(4:8),seq(5:9)), ncol=5)
print(E3)
E1 使用库来绘制 Hankel 矩阵,在 E2 中,我尝试手动输入数字来绘制一个,但如果我想要一个新的大矩阵,这将花费很多时间。我尝试使用seq(),但没有成功。它会像这样绘制:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
[4,] 4 4 4 4 4
[5,] 5 5 5 5 5
我对 R 还是很陌生,所以欢迎每个想法。
【问题讨论】:
-
顺便说一句:seq 调用不正确,不应在 seq 中使用“:”。或者只是使用“:”...
E3 <- matrix( c(1:5,2:6,3:7,4:8,5:9), ncol=5) print(E3) -
你能解释一下为什么不应该在
seq()里面使用:吗? -
因为参数的位置匹配(参数没有名称)会给第一个参数一个多元素向量,而第二个参数没有值。 ":" 函数实际上是
seq函数的中缀版本