MATLAB Answers

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

Community Treasure Hunt

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

Start Hunting!

Translated by