Skip to content
Prev 1650 / 15379 Next

[R-es] ampliar una matriz copiando una columna y desplazándola

Si no te entiendo mal, quieres construir una matriz de Hankel (http://en.wikipedia.org/wiki/Hankel_matrix) a partir de la décima columna. Si es así, te puede servir el siguiente código (no estoy seguro de la secuencia que quieres reproducir a partir del sexto elemento de la columna 10; he supuesto que seguirás con 510, etc. y de ahí el vector x).

x=c(10, 110, 210, 310, 410, 510, 610, 710, 810)
nrow=5
ncol=5

A=matrix(0, nrow=nrow, ncol=ncol)
idx=col(A)+row(A)-1
x <- matriz[,10]
M <- matrix(x[idx], nrow=nrow, ncol=ncol)

Obtendrás lo siguiente:

     [,1] [,2] [,3] [,4] [,5]
[1,]   10  110  210  310  410
[2,]  110  210  310  410  510
[3,]  210  310  410  510  610
[4,]  310  410  510  610  710
[5,]  410  510  610  710  810

Ah, y la matriz original puedes construirla con un sólo paso:

matriz<-rbind(a, b, c, d, e)


Saludos.

Oscar-
On Sun, 19 Dec 2010 21:27:23 +0000 (GMT)
Fernando Sanchez <fernandsanche en yahoo.es> wrote: