Point not match and connect with the nearest point to line
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Jan
il 28 Mag 2021
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
il 28 Mag 2021
Are you willing to simply hand draw a dividing line through the right and left portions?
Risposta accettata
Jan
il 28 Mag 2021
Modificato: Jan
il 28 Mag 2021
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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!