I am trying to get a persp plot of a surface that is a function of v0 and v1. The surface height at (v0,v1) is sqrt(sum((s1[i][j]-s0[i][j])^2)) where s1[i][j] = a*sin(2*pi*freq*x[i]+v1*y[j]) s0[i][j] = a*sin(2*pi*freq*x[i]+v0*y[j]) I am having a hard time with the vector multiplication. This is what I have so far: v0 <- seq(-7,7,1)*.1 v1 <- v0 x <- seq(0,2*pi,.1) y <- x f <- function(v0,v1) { a<-2 freq<-1 s1<-a*sin(2*pi*freq*x+v1*y) ##wrong s0<-a*sin(2*pi*freq*x+v0*y) ##wrong sqrt(sum((s1-s0)^2)) } z <- outer(v0,v1,f) z[is.na(z)] <- 1 persp(v0, v1, z, theta=30, phi=30) The lines marked ##wrong are wrong because the dimensions of x[] and y[] are not necessarily the same. In C one would do for(v0=v0min;v0<v0max;v0+=v0inc) for(v1=v1min;v1<v1max;v1+=v1inc) { sumsq=0; for(i=0;i<nx;i++) for(j=0;j<ny;j++) { s1[i][j]=a*sin(2*pi*freq*x[i]+v1*y[j]); s0[i][j]=a*sin(2*pi*freq*x[i]+v0*y[j]); sumsq+=(s1[i][j]-s0[i][j])*(s1[i][j]-s0[i][j]); } m++; n++; output[m][n]=sqrt(sumsq); } How to do this in R? Thanks very much for any help. Bill Simpson -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- 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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._