Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.


Douglas
Posts:
3
Registered:
11/26/13


Re: Vector Coding
Posted:
Nov 26, 2013 2:36 PM


I apologize for the inaccuracy in my typing. Gamma was a matrix (gamma(i)) and the atan2 argument had a comma rather than the division symbol.
After making the suggested changes, the issue of vertical asymptotes still exists. The revised code is listed below.
gamma=zeros(m1,1);
for row=1:m2 gamma(row)=atan2((y(row+1)y(row)),(x(row+1)x(row))); end
TideMan <mulgor@gmail.com> wrote in message <b265bf79061a4ef498ec6ff04a8bfdf6@googlegroups.com>... > On Wednesday, November 27, 2013 4:00:20 AM UTC+13, Douglas wrote: > > Roger, > > > > I am trying to conduct an analysis of coordination between two adjacent segments called Vector coding (Chang et al., 2008; Journal of Biomechanics). The coupling angle is defined as the inverse tangent of the change in y divided by the change in x (see code below). However, I cannot condition my data such that I avoid the vertical asymptotes of the atan2 function. Can you please offer some suggestions. > > > > > > > > x and y are single column arrays with length m. > > > > > > > > [m,n]=size(x); > > > > > > > > for i=1:m1 > > > > gamma=atan2((y(i+1)y(i))/(x(i+1)x(i))) > > > > end > > There are several things wrong with your code: > 1. gamma gets overwritten each time through the loop, you should use gamma(i) > 2. By default, i and j are sqrt(1). You should not use i or j as indexes, especially for this particular task which is often easier using complex numbers. > 3. atan2 takes two arguments. You have only one. You will find that if you use atan2 properly, it handles atan2(1,0) OK. > 4. if you use gamma(i), you need to preallocate storage with gamma=zeros(m1,1); before the loop.



