Making heading data continuous (i.e. instead of 359 --> 0 degrees make it 359 --> 360 degrees)

12 次查看(过去 30 天)
I have a spreadsheet containing data about a vehicle's speed and heading against time. The spreadsheet is attached. When plotting the heading of the vehicle against time, I get this plot:
As can be seen, the near-vertical lines are mostly because the vehicle's heading changes from 359 degrees to 0 degrees (and vice versa) which makes the bearing look discontinuous. How could I make it such that the vehicle heading data reads, say, 360 degrees, 361 degrees, etc? I need it as it's easier for me to then calculate through what angle a vehicle has turned.
Please let me know if you need any clarification.
To get the plot above, my code is:
A = readmatrix("20181026075227_947BE7249B00.csv");
%find initial time, since time is in UNIX millisecond format.
%column 1 is the time, column 6 is the bearing
t0 = A(1,1);
plot((A(:, 1)-t0)/1000, A(:, 6), 'LineWidth', 3)
ylabel("Heading (degrees)")
xlabel("Time from start (s)")

采纳的回答

Chunru
Chunru 2021-5-12
Try this:
plot(rad2deg(unwrap(deg2rad(BE7249B00{:, 6})))); % The data is 6th column

更多回答(1 个)

Geoff Hayes
Geoff Hayes 2021-5-12
Amritz - perhaps a polarplot might be useful:
polarplot(headingData*pi/180.0, (A(:, 1)-t0)/1000);

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by