Clear Filters
Clear Filters

Matlab variable rounding issue

2 views (last 30 days)
Heather Purdie
Heather Purdie on 21 Jul 2022
Commented: Heather Purdie on 22 Jul 2022
I have a variable (B_WD) that is a 295x4 double, which I am plotting using quiver. It is wind direction vectors ploted over time along a line.
quiver (B_WD(:,1),B_WD(:,2),B_WD(:,3),B_WD(:,4), 'k');
Varibles before code runs.......(4 lines)
738226.7222 0.0000 -0.3000 -0.8000
738226.7292 0.0000 0.2000 -0.5000
738226.7361 0.0000 0.3000 -0.5000
738226.7431 0.0000 0.3000 -1.1000
The first column is the position on x-axis (I am plotting the arrows along a line -hence the zeros in column 2).
When I run the code the first column switches to less precision, rounding to 2dp and some arrows plot from the same start point
Variable after code runs......see rounding
738226.7200 0.0000 -0.3000 -0.8000
738226.7300 0.0000 0.2000 -0.5000
738226.7400 0.0000 0.3000 -0.5000
738226.7400 0.0000 0.3000 -1.1000
I have been reading the help and have tried changing the format of the variable to 'long', I have replaced numbers and re-saved, nothing seems to stop this.
Advice greatly appreciated
  3 Comments
Heather Purdie
Heather Purdie on 21 Jul 2022
738226.7361 changes to 738226.7400 and 738226.7431 changes to 738226.7400 so they end up plotting at the same starting point
Bruno Luong
Bruno Luong on 21 Jul 2022
Edited: Bruno Luong on 21 Jul 2022
"When I run the code the first column switches to less precision"
You should tel us what is the code. If you don't change/assign the variable it should remain identical.

Sign in to comment.

Answers (1)

Chunru
Chunru on 21 Jul 2022
Edited: Chunru on 21 Jul 2022
B_WD = [
738226.7222 0.0000 -0.3000 -0.8000
738226.7292 0.0000 0.2000 -0.5000
738226.7361 0.0000 0.3000 -0.5000
738226.7431 0.0000 0.3000 -1.1000 ];
quiver (B_WD(:,1),B_WD(:,2),B_WD(:,3),B_WD(:,4), 'k');
% The first column looks like datenum
datestr(B_WD(:, 1))
ans = 4×20 char array
'11-Mar-2021 17:19:58' '11-Mar-2021 17:30:02' '11-Mar-2021 17:39:59' '11-Mar-2021 17:50:03'
  4 Comments
Heather Purdie
Heather Purdie on 22 Jul 2022
I created this as a new variable in the work space, then copied and pasted 4 colums of data (numbers to 4dp) into the array and saved it. I am a relatively new Matlab user, as you can probably tell...
Heather Purdie
Heather Purdie on 22 Jul 2022
Thanks to those who have tried to help - much appreciated. A colleague has helped me resolve this problem by using the 'digits' command and 'vpa' command to set the back-ground level of precision for the variables, which has in-turn dealt with the auto-rounding....

Sign in to comment.

Categories

Find more on Line Plots in Help Center and File Exchange

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!