[R] problem with outer and image

Prof Brian D Ripley ripley at stats.ox.ac.uk
Tue Oct 5 14:13:13 CEST 1999

On Tue, 5 Oct 1999, Bill Simpson wrote:

> I want to make a picture of a cos wave grating (pattern of fuzzy stripes).
> First I try to make a plot of a cos wave:
> x<-seq(1:100)
> y<- 10*cos(2*pi*x*3/length(x)+0)+300
> plot(x,y)
> That works fine. 3 cycles of cos wave. Now try for grating.
> time<-seq(1:100)
> f<-function(x,time) 10*cos(2*pi*x*3/length(x)+0)+300
> z<-outer(x,time,f)
> image(x,time,z)
> I get a vertical grating as expected, BUT now I get <1 cycle of cos
> wave. Varying the frequency (3 above) does nothing. I don't understand
> what I am doing wrong.

Which x were you expecting the length of?  f is called inside outer, so
try replacing length(x) by 100, as the x passed to f has length 100*100.
Or (dangerous)

f <- function(xx,time) 10*cos(2*pi*xx*3/length(x)+0)+300

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list