loops performed on table

1 view (last 30 days)
Phoebe Armitage
Phoebe Armitage on 4 Mar 2021
Answered: David Hill on 4 Mar 2021
TT =
3587×5 table
Angle Speed theta x speed y speed
_____ _____ _____ _______ _______
199 0.119 NaN NaN NaN
209 0.214 NaN NaN NaN
210 0.238 NaN NaN NaN
201 0.191 NaN NaN NaN
I would like to process the following actions:
For rows where 0<=angle<90 --> theta=angle
yspeed=speed*cos(theta)
xspeed=speed*sin(theta)
For rows where 90<=angle<180 --> theta=angle-90
yspeed=speed*sin(theta)
xspeed=speed*cos(theta)
For rows where 180<=angle<270 --> theta=angle-180
yspeed=speed*cos(theta)
xspeed=speed*sin(theta)
For rows where 270<=angle<0 --> theta=angle-270
yspeed=speed*sin(theta)
xspeed=speed*cos(theta)
How would I code this?
Many thanks
  1 Comment
Mathieu NOE
Mathieu NOE on 4 Mar 2021
hello
well, you have almost the code ready when you wrote the question,
where do you have trouble with ?

Sign in to comment.

Answers (1)

David Hill
David Hill on 4 Mar 2021
idx=TT.Angle>=0&TT.Angle<90;
TT.theta(idx)=TT.Angle(idx);
TT.yspeed(idx)=TT.Speed(idx).*cosd(TT.theta(idx));
TT.xspeed(idx)=TT.Speed(idx).*sind(TT.theta(idx));%continue in the way for the others

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!