Hi all, I am having a problem getting my fucntion to work correctly. Here is my problem. I have three ages: Nage<-c(1,2,3) I have an weight matrix: Wt<-c( 0.04952867, 0.23808432, 0.34263880) I have an age schedule of maturity: Mat<-c(0,1,1) where 0 is not mature, and 1 is mature I have a vulnerability schedule: Vul<-c(0,1,1) I have an survivorship schedule: Survship<-c(1,0.4,0.16) I also have leading parameters R0<-130.66; recK<-3.068; a<-5.48; b<-0.0282; S<-0.4 I have annual catches for 100 years, ct<-runif(100,5,20) Now I want a matrix of 100 years x 3 ages yr<-c(1:100) Nt<-matrix(0,nrow=length(yr)+1),ncol=length(Nage)) Now the first row of my matrix needs to be the product of R0 and Survship, no problem Nt[1,]<-Ro*Survship I also need to create a new vector of egg production so Eggs<-vector();Eggs[1]<-sum(Mat*Nt[1,]) I also calculate the vulnerable biomass for each year so VulBio<-vector();VulBio[1]<-sum(Wt*Vul*Nt[1,]) Now I calculate the exploitation Ut<-min(0.99,ct[1]/VulBio[1]) For (i in 1:length(Nt[,1])){ Now I need to calculate the first column of values where; Nt[i+1,1]<-a*Eggs[i]/(1+b*Eggs[i]) Eggs[i+1]<-sum(Mat*Nt[i+1,] VulBio[i+1]<-sum(Wt*Vul*Nt[i+1,]) Ut[i+1]<-min(0.99,ct[i+1]/VulBio[i+1]) Now here is the rub, I need to calculate the rest of the matrix based on the previous years values for the previous age, but I don't want to overwrite the first column or first row. Nt[i+1,i+1]<-Nt[i,i]*S*(1-Ut[i]*Vul[i] gives the diagonal. How do I fill the matrix without overwriting colum and row 1? Cameron Guenther, Ph.D. 100 8th Ave. SE St. Petersburg, Fl 33701 727-896-8626 ext. 4305 cameron.guenther at myfwc.com