Matlab variable rounding issue

2 次查看(过去 30 天)
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 个评论
Heather Purdie
Heather Purdie 2022-7-21
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 2022-7-21
编辑:Bruno Luong 2022-7-21
"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.

请先登录,再进行评论。

回答(1 个)

Chunru
Chunru 2022-7-21
编辑:Chunru 2022-7-21
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 个评论
Heather Purdie
Heather Purdie 2022-7-22
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 2022-7-22
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....

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by