Point not match and connect with the nearest point to line

2 ビュー (過去 30 日間)
TAN SAK JIE
TAN SAK JIE 2021 年 5 月 27 日
編集済み: TAN SAK JIE 2021 年 5 月 30 日
Point not match and connect with the nearest point to line
The data I exported from the ANSYS FLUENT...and when i plot it the line is not follow the black dot but connect in the zig zag direction.. Any one can fix it :(
I wish to know how to rearrange the data so that the i can match the nearest black dot to plot a line in order to erase the unwanted data
  5 件のコメント
Jan
Jan 2021 年 5 月 28 日
This is not trivial. If the point is preferred, which changes the direction of the former trajectory as small as possible, then the corner at x=0.25 will be a problem:
So you need a smart algorithm, which considers the nearest point, if it is near enough, but decides for another point, if the trajectory is straight enough. For 2D and 3D surfaces Matlab offers the alphaShape , but I do not know the command for a line.
How are the positions of the dots calculated? The creator does not know, that this is a connected graph. Otherwise it should be trivial to output the coordinates in the correct order directly.
Image Analyst
Image Analyst 2021 年 5 月 28 日
Are you willing to simply hand draw a dividing line through the right and left portions?

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

採用された回答

Jan
Jan 2021 年 5 月 28 日
編集済み: Jan 2021 年 5 月 28 日
To my surprise finding the nearest point iteratively solves the problem already:
[x,y] = nearestConnection(a.Topwall(:,2), a.Topwall(:,3));
plot(x, y)
function [xa, ya, index] = nearestConnection(x, y)
xa = zeros(size(x));
ya = zeros(size(y));
index = zeros(size(x));
% Find the initial point defined by the smallest X value:
[~, idx0] = min(x);
xa(1) = x(idx0);
ya(1) = y(idx0);
index(1) = idx0;
x(idx0) = NaN; % Mask original point
y(idx0) = NaN;
for k = 2:numel(x)
dist = (x - xa(k - 1)) .^ 2 + (y - ya(k - 1)) .^ 2;
[~, idx] = min(dist);
index(k) = idx;
xa(k) = x(idx);
ya(k) = y(idx);
x(idx) = NaN;
y(idx) = NaN;
end
end

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by