Message-ID: <51CD8C97.5060806@gmail.com>
Date: 2013-06-28T13:16:07Z
From: Duncan Murdoch
Subject: How to create a function returning an array ?
In-Reply-To: <B84290A7-2D2F-482A-9A55-BFBF10B354F5@comcast.net>
On 27/06/2013 11:38 PM, David Winsemius wrote:
> On Jun 27, 2013, at 8:04 PM, Kaptue Tchuente, Armel wrote:
>
> > Hi there,
> >
> > I would like to know how to change the line "img=as.single(rnorm(m)))" such that instead of being a vector of length m as it is now, img is an array of dimension c=(n,m,o) for instance
> >
> > ---------------------------------
> > read_ts<-function(n,m,o,img) {
> > out<-.Fortran("read_ts",
> > as.integer(n),
> > as.integer(m),
> > as.integer(o),
> > img=as.single(rnorm(n)))
> > return(out$img)
> > ------------------------------------------
> >
>
> Well, assuming that the 'out$img' object has a R-length of n*m*o , wouldn't if be simpler to just change the return call to:
In fact, out$img has a length of n, same as on input. .Fortran won't
change the length of its arguments.
Duncan Murdoch
>
> return( array( out$img, dim=c(n,m,o) )
>
> I don't think you wnat start naming your dimension vectors "c".
>