Re: [R] Matrix from a vector?

2006-09-21 Thread Petr Pikal
Hi

other approach is to use embed

embed(c(rhsel,rhsel),length(rhsel))[-1,]
which is a little bit quicker

rhsel<-rnorm(1000)
n <- length(rhsel)

system.time({
i <- sapply(1:n, function(i) (1:n - i)%%n + 1)
x2<-matrix(rhsel[i], n, n)
})

system.time(x1<-embed(c(rhsel,rhsel),length(rhsel))[-1,])

all.equal(x1,x2)


HTH
Petr


On 21 Sep 2006 at 14:53, Sundar Dorai-Raj wrote:

Date sent:  Thu, 21 Sep 2006 14:53:52 -0500
From:   Sundar Dorai-Raj <[EMAIL PROTECTED]>
Organization:   PDF Solutions, Inc.
To: kone <[EMAIL PROTECTED]>
Copies to:  r-help@stat.math.ethz.ch
Subject:        Re: [R] Matrix from a vector?

> 
> 
> kone said the following on 9/21/2006 2:30 PM:
> > Hi,
> > 
> > Is there some function, which generates this kind of n x n -matrix 
> > from a vector?
> > 
> >  > rhset
> > [1]  1792   256 13312   512  1024  2048  8192  4096
> >  >  m=matrix(nrow=length(rhset),ncol=length(rhset))
> >  >  for(i in 1:length(rhset))
> > +   {
> > +   m[,i]=rhset
> > +   rhset=c(rhset[length(rhset)], rhset[2:length(rhset)-1])
> > +   }
> >  > m
> >[,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]
> > [1,]  1792  4096  8192  2048  1024   512 13312   256
> > [2,]   256  1792  4096  8192  2048  1024   512 13312
> > [3,] 13312   256  1792  4096  8192  2048  1024   512
> > [4,]   512 13312   256  1792  4096  8192  2048  1024
> > [5,]  1024   512 13312   256  1792  4096  8192  2048
> > [6,]  2048  1024   512 13312   256  1792  4096  8192
> > [7,]  8192  2048  1024   512 13312   256  1792  4096
> > [8,]  4096  8192  2048  1024   512 13312   256  1792
> > 
> > 
> > Atte Tenkanen
> > University of Turku, Finland
> > 
> > __
> > R-help@stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> > http://www.R-project.org/posting-guide.html and provide commented,
> > minimal, self-contained, reproducible code.
> 
> 
> Does this work for you?
> 
> rhsel <- c(1792, 256, 13312, 512, 1024, 2048, 8192, 4096)
> n <- length(rhsel)
> i <- sapply(1:n, function(i) (1:n - i)%%n + 1)
> matrix(rhsel[i], n, n)
> 
> HTH,
> 
> --sundar
> 
> __
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html and provide commented,
> minimal, self-contained, reproducible code.

Petr Pikal
[EMAIL PROTECTED]

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Matrix from a vector?

2006-09-21 Thread Gabor Grothendieck
Try this:

matrix(rhset[outer(1:8, 1:8, "-") %% 8 + 1], 8)


On 9/21/06, kone <[EMAIL PROTECTED]> wrote:
> Hi,
>
> Is there some function, which generates this kind of n x n -matrix
> from a vector?
>
>  > rhset
> [1]  1792   256 13312   512  1024  2048  8192  4096
>  >  m=matrix(nrow=length(rhset),ncol=length(rhset))
>  >  for(i in 1:length(rhset))
> +   {
> +   m[,i]=rhset
> +   rhset=c(rhset[length(rhset)], rhset[2:length(rhset)-1])
> +   }
>  > m
>   [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]
> [1,]  1792  4096  8192  2048  1024   512 13312   256
> [2,]   256  1792  4096  8192  2048  1024   512 13312
> [3,] 13312   256  1792  4096  8192  2048  1024   512
> [4,]   512 13312   256  1792  4096  8192  2048  1024
> [5,]  1024   512 13312   256  1792  4096  8192  2048
> [6,]  2048  1024   512 13312   256  1792  4096  8192
> [7,]  8192  2048  1024   512 13312   256  1792  4096
> [8,]  4096  8192  2048  1024   512 13312   256  1792
>
>
> Atte Tenkanen
> University of Turku, Finland
>
> __
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Matrix from a vector?

2006-09-21 Thread Sundar Dorai-Raj


kone said the following on 9/21/2006 2:30 PM:
> Hi,
> 
> Is there some function, which generates this kind of n x n -matrix  
> from a vector?
> 
>  > rhset
> [1]  1792   256 13312   512  1024  2048  8192  4096
>  >m=matrix(nrow=length(rhset),ncol=length(rhset))
>  >for(i in 1:length(rhset))
> + {
> + m[,i]=rhset
> + rhset=c(rhset[length(rhset)], rhset[2:length(rhset)-1])
> + }
>  > m
>[,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]
> [1,]  1792  4096  8192  2048  1024   512 13312   256
> [2,]   256  1792  4096  8192  2048  1024   512 13312
> [3,] 13312   256  1792  4096  8192  2048  1024   512
> [4,]   512 13312   256  1792  4096  8192  2048  1024
> [5,]  1024   512 13312   256  1792  4096  8192  2048
> [6,]  2048  1024   512 13312   256  1792  4096  8192
> [7,]  8192  2048  1024   512 13312   256  1792  4096
> [8,]  4096  8192  2048  1024   512 13312   256  1792
> 
> 
> Atte Tenkanen
> University of Turku, Finland
> 
> __
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


Does this work for you?

rhsel <- c(1792, 256, 13312, 512, 1024, 2048, 8192, 4096)
n <- length(rhsel)
i <- sapply(1:n, function(i) (1:n - i)%%n + 1)
matrix(rhsel[i], n, n)

HTH,

--sundar

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


[R] Matrix from a vector?

2006-09-21 Thread kone
Hi,

Is there some function, which generates this kind of n x n -matrix  
from a vector?

 > rhset
[1]  1792   256 13312   512  1024  2048  8192  4096
 >  m=matrix(nrow=length(rhset),ncol=length(rhset))
 >  for(i in 1:length(rhset))
+   {
+   m[,i]=rhset
+   rhset=c(rhset[length(rhset)], rhset[2:length(rhset)-1])
+   }
 > m
   [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]
[1,]  1792  4096  8192  2048  1024   512 13312   256
[2,]   256  1792  4096  8192  2048  1024   512 13312
[3,] 13312   256  1792  4096  8192  2048  1024   512
[4,]   512 13312   256  1792  4096  8192  2048  1024
[5,]  1024   512 13312   256  1792  4096  8192  2048
[6,]  2048  1024   512 13312   256  1792  4096  8192
[7,]  8192  2048  1024   512 13312   256  1792  4096
[8,]  4096  8192  2048  1024   512 13312   256  1792


Atte Tenkanen
University of Turku, Finland

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.