フィルターのクリア

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

2 ビュー (過去 30 日間)
The Merchant
The Merchant 2019 年 12 月 4 日
コメント済み: Adam Danz 2020 年 1 月 16 日
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 件のコメント
Rena Berman
Rena Berman 2020 年 1 月 16 日
(Answers Dev) Restored edit
Adam Danz
Adam Danz 2020 年 1 月 16 日
Thanks, Rena!

サインインしてコメントする。

採用された回答

Adam Danz
Adam Danz 2019 年 12 月 4 日
編集済み: Adam Danz 2019 年 12 月 4 日
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 件のコメント
The Merchant
The Merchant 2019 年 12 月 4 日
thanks!
Adam Danz
Adam Danz 2019 年 12 月 4 日
編集済み: Adam Danz 2019 年 12 月 4 日
Glad we finally got there. ;) That answer would have been impossible without the code which came after a bit of dialog.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeBounding Regions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by