フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Difficulties programming coordinates identification

1 回表示 (過去 30 日間)
Alex castilla
Alex castilla 2018 年 4 月 13 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I have two matrices:
1- contains the ‘x’ and ‘y’ coordinates ( 2816x2) for a trajectory walk.
2- the second one (9x3) contains the ‘index’,‘X’ and ’Y’ for the coordinates for nine tiles.
During the trajectory, a person walks on certain tiles. I would like to know how to identify the tile or tiles the person walks on using the index of the tiles (figure 1). Is it possible to obtain a column with 0’s and the tile’s indices?
For instances, if the person walks without passing through/on a tile is noted 0 and if the person walks on a tile the index of the tile 1. My goal is to add a column to the first matrix with the new data (like this 2816x3).

回答 (1 件)

dpb
dpb 2018 年 4 月 13 日
編集済み: dpb 2018 年 4 月 13 日
[isHit,whereHit]=ismember(Tile(:,2:3),Traj,'rows');
isHit is T if the tile was touched during the walk; whereHit is the location in the (first) trajectory vector the intersection was. If there can be multiple crossings and need those, will need to do that lookup separately.
ADDENDUM The above assumes trajectory and tiles are discrete coordinates...does the tile cover some number of units of size of dX/dY in the tractory? If so, need neighborhood calc, not just coordinate match.
Let us know more if the above first assumption is erroneous.
  1 件のコメント
Alex castilla
Alex castilla 2018 年 4 月 14 日
Yes, you are right, I did a neighbourhood calculation to know if the subject walk on the tile(s). I added a width and height. this is the code:
w=30;% target position's width
h=30;% target position's height
reach_target=zeros(size(x));
for i= 1:length(x)
for e=1:length(X)
if (x(i)>(X(e)-w/2) & x(i)<(X(e)+w/2));
if(y(i)>(Y(e)-h/2) & y(i)<(Y(e)+h/2));
reach_target(i)=1;
end
end
end
end

この質問は閉じられています。

Community Treasure Hunt

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

Start Hunting!

Translated by