[R] Fwd: Quadratic programming, for loop

Boris Steipe
Thu, 14 Jun 2018 12:52:53 -0000

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.sirkjarvi at
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.steipe at
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.sirkjarvi at
gmail.com> wrote:
> >
> >  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
>
>