The statement dvec <- -hsmooth
looks like it might be the source of the problem, depending on what hsmooth is. On Tue, Jun 26, 2018 at 11:16 AM, Maija Sirkjärvi <maija.sirkja...@gmail.com > wrote: > Thanks for the reply! I got that figured out, but still have some problems > with the quadratic programming. > > It seems that my Amat and dvec are incompatible. Amat is a matrix of zeros > size: *2*J-3,J* and dvec is a vector of length *J*. There should be no > problem, but apparently there is. The piece of code looks like this: > > Dmat <- matrix(0,nrow= J, ncol=J) > diag(Dmat) <- 1 > dvec <- rep(0,J) > dvec > dvec <- -hsmooth > Aeq <- 0 > beq <- 0 > Amat <- matrix(0,2*J-3,J) > bvec <- rep(0,2*J-3) > > for(j in 2:J) > { > Amat[j-1,j-1] = -1 > Amat[j-1,j] = 1 > bvec[j-1] = Delta1 > } > > for(j in 3:J) > { > Amat[J-1+j-2,j] = -1/(Q[j] - Q[j-1]) > Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2]) > Amat[J-1+j-2,j-2]= -1/(Q[j-1] - Q[j-2]) > bvec[J-1+j-2]= Delta2 > } > > solution <- solve.QP(Dmat, dvec, Amat, bvec) > > > 2018-06-14 15:52 GMT+03:00 Boris Steipe <boris.ste...@utoronto.ca>: > > > Keep replies on list please. > > > > You are not accessing a value from vector Q if you access the zero'th > > element! > > R > Q <- c(3, 5, 8) > > R > Q[0] > > numeric(0) > > R > Q[1] > > [1] 3 > > R > Q[2] > > [1] 5 > > > > In the first iteration of the loop j is 2 thus j-2 is 0 and that's the > > reason for the error message: you are trying to replace a matrix element > > with a zero-length (i.e. unassigned) numeric value. Perhaps, in your > mind, > > you are mixing up the index of a vector element and its value? If you > need > > two zeros to start your vector, do something like > > > > R > Q <- c(0, 0, Q) > > R > Q > > [1] 0 0 3 5 8 > > > > > > Clear now? > > B. > > > > > > > > > On 2018-06-14, at 01:22, Maija Sirkjärvi <maija.sirkja...@gmail.com> > > wrote: > > > > > > Many thanks for your message! > > > > > > The thing is that I need Q[j-2] to be zero for the first two > iterations > > because I don't have those values (J starts from 1). Do you have any idea > > how to do it? > > > > > > Thanks again! > > > > > > Maija > > > > > > 2018-06-13 15:52 GMT+03:00 Boris Steipe <boris.ste...@utoronto.ca>: > > > Q[j-2] gives you Q[0] in your first inner loop iteration. > > > R arrays start at one. > > > > > > B. > > > > > > > > > > On 2018-06-13, at 07:21, Maija Sirkjärvi <maija.sirkja...@gmail.com> > > wrote: > > > > > > > > Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2]) > > > > > > > > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.