How to obtain samples within angular windows?

Hi, Let us say I have a projectile moving around in a square environment and I want to sample all positions where the projectile has travelled within a 20 degrees angular window, as seen from a fixed point in the environment. Can anyone help me figure out how to do this? In the attached picture, the spiral is a made up path of the projectile and the red dot is the fixed point from which I want to make the angular window.
Thanks

1 comentario

OH
OH el 18 de En. de 2017
Ok, so if I construct vectors with 20 degrees separation emanating from the fixed point (as in the picture below), can I then somehow get all the non-NaN elements (i.e where the projectile has been) in the area between two vectors?

Iniciar sesión para comentar.

Respuestas (1)

Jyotish Robin
Jyotish Robin el 20 de En. de 2017
Hi,
Since you are asking for a way in which you can get the non- NaN elements, I suppose you are having a matrix which corresponds to the image. Let me know if that is not the case.
Now, I would suggest you to make use of the function "isnan". isnan(A) returns an array with the same size as A containing logical 1 (true) where the elements of A are NaNs and logical 0 (false) where they are not.
So if it's just a 1D vector ( say y), you can simply do something like this:
>>y1 = y(~isnan(y));
You can read about this in detail in the below link:
Hope it helps!!

3 comentarios

OH
OH el 21 de En. de 2017
Hi,
Thanks for the reply. I do not have a matrix corresponding to the image. Sorry for being unclear about that. Actually, the answer seems to be to transform the xy-positions of the trajectory into polar coordinates, using cart2pol, then using bsxfun to decide if a certain position belongs to a certain sector. Example:
n % number of sectors
trajectory % array with xy positions of trajectory
x0, y0 % point from which sectors are made
theta = cart2pol(trajectory(x)-x0, trajectory(y)-y0)
sectors = linspace(-pi,pi,n+1)
sectorgrouping = bsxfun(@le, sectors(1:end-1).', theta)& ... bsxfun(@gt, sectors(2:end).', theta);
Image Analyst
Image Analyst el 21 de En. de 2017
So, it's solved then?
OH
OH el 21 de En. de 2017
I would say so.
If one also wants a vector with the sector identity for each
position sample, one may add the following to the example above:
sectorIdentity = (1:n) * sectorgrouping;
Thanks

Iniciar sesión para comentar.

Preguntada:

OH
el 17 de En. de 2017

Comentada:

OH
el 21 de En. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by