Sorting of points in 2D
Mostra commenti meno recenti
Dear All,
I face issue in arranging the airfoil coordinates coming from a CAD program. The coordinates are arranged from minumum x value to maximum x value. But I require to arrange the points starting from Trailing Edge ( Max X coordinate) and then proceed on top side all the way to Leading Edge ( Minimum X coordinate) and then again proceed in the bottom side and terminate in the Trailing Edge.
The input.txt ( required input file to be sorted)
Output.txt (the coordinates sorted manually).
I have several airfoil coordinates of similar nature, so a matlab function could help me out doing the job manually everytime.
Any help is really appreciated.
Thanks in Advance,
K Vijay Anand
3 Commenti
Ameer Hamza
il 17 Ott 2020
Can you create a small input and output file? Maybe with a maximum of 20 lines. That will help in understanding the pattern.
KSSV
il 17 Ott 2020
One way is to use the below rocedure:
Vijay Anand
il 17 Ott 2020
Modificato: Vijay Anand
il 17 Ott 2020
Risposta accettata
Più risposte (1)
Vijay Anand
il 18 Ott 2020
Modificato: Vijay Anand
il 18 Ott 2020
0 voti
2 Commenti
Steven Lord
il 18 Ott 2020
Consider using the movmean function included in MATLAB.
Stephen23
il 19 Ott 2020
I did some more experimentation and got better results replacing the moving average with a polynomial fitted to the data. First I tried polyfit, but quickly realized that the end points need to be specified. Luckily this FEX submission
allows constraints to be specified, including points that the curve has to pass through:
pts = Inp{[1,end],:}; % polynomial must pass through the leading & trailing edges
pwr = mmpolyfit(Inp.x,Inp.y, 5, 'Point',pts) % fit order 5 polynomial
tmp = polyval(pwr, Inp.x); % replaces TMP in the original answer
And checking the fit:
plot(Inp.x,Inp.y,'-*', Inp.x,tmp,'-+')

Categorie
Scopri di più su Airfoil tools in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



