Why is the out-printed string displaying the wrong values?

1 vue (au cours des 30 derniers jours)
The Merchant
The Merchant le 4 Déc 2019
Commenté : Adam Danz le 16 Jan 2020
The code of the fprintf-part:
coordPoints = [convexHull,coordsConvex].';
fprintf('convex hull points:');
fprintf(' %d (%d %d),',coordPoints(:,1:end - 1))
fprintf(' and %d (%d %d).\n',coordPoints(:,end))
The current output:
convex hull points: 16 (0 3), 13 (0 0), 11 (6 0), 8 (8 0), 5 (8 6), 1 (0 8), and 18 (0 4).
The desired output:
convex hull points: 16 (-10 3), 13 (-9 -5), 11 (6 -10), 8 (8 -7), 5 (8 6), 1 (-7 8), and 18 (-10 4).
It is clearly caused by the negative values, but I can't seem to figure out how exactly.
The variable coordsConvex
-10 3
-9 -5
6 -10
8 -7
8 6
-7 8
-10 4
The variale coordPoints
16 13 11 8 5
0 0 6 8 8
3 0 0 0 6
  5 commentaires
Rena Berman
Rena Berman le 16 Jan 2020
(Answers Dev) Restored edit
Adam Danz
Adam Danz le 16 Jan 2020
Thanks, Rena!

Connectez-vous pour commenter.

Réponse acceptée

Adam Danz
Adam Danz le 4 Déc 2019
Modifié(e) : Adam Danz le 4 Déc 2019
This line below changes the values of convexHull.
coordPoints = [convexHull,coordsConvex].';
To prevent that, convert to double
coordPoints = [double(convexHull),coordsConvex].';
% ^^^^^^^
fprintf('convex hull points:');
fprintf(' %d (%d %d),',coordPoints(:,1:end - 1))
fprintf(' and %d (%d %d).\n',coordPoints(:,end))
Result
convex hull points: 16 (-10 3), 13 (-9 -5), 11 (6 -10), 8 (8 -7), 5 (8 6), 1 (-7 8), and 18 (-10 4).
  2 commentaires
The Merchant
The Merchant le 4 Déc 2019
thanks!
Adam Danz
Adam Danz le 4 Déc 2019
Modifié(e) : Adam Danz le 4 Déc 2019
Glad we finally got there. ;) That answer would have been impossible without the code which came after a bit of dialog.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Bounding Regions dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by