I'm trying to get in the habit of writing my code in terms of matrix operations and using as few for loops as possible. Is there a better way to write this code without the for loop?
for ii=1:N if (acos(dot(rel_vec,vec_array(:,ii))) > pi/2) vec_array(:,ii) = -vec_array(:,ii); endend
vec_array is matrix containing N vectors (3xN). I compare each vector in the matrix to make sure they're within 180 degrees of some relative vector (rel_vec). If the vector is more than 180 degrees away, I multiply the vector by -1.
Best Answer