我得到了數據集(由子集的總和形成,因此它是未排序的)和Id想要將它變成多邊形。將XY數據轉換成多邊形,然後順時針排序
是否有一個簡單的Matlab程序,將數據集排序/變成多邊形?多邊形的數據形式輪廓,但它們不是正確的順序:
(在左邊)。多邊形必須由所有點組成,並且線條與CANT相交。
可悲的是多邊形不是凸的,所以convhull
不會工作:C
感謝您的任何想法,本
編輯:繼承人什麼,我需要做一個小例子 - 我需要轉換的藍色多邊形變成紅色,所以沒有交點。
x1 = [0, 1, 2, 1, 2, 0]
x2 = [0, 1, 2, 2, 1, 0]
y1 = [2, 1, 3, 3, 1, 2]
y2 = [2, 1, 1, 3, 3, 2]
plot(x1,y1,'b-*')
axis([0,3,0,4])
pause
hold on, plot(x2,y2,'r-o')
編輯2:香港專業教育學院終於成功地擺脫多餘的數據,所以這裏的實際數據我試着去適應(藍點),使用convhull到左側時,通過MATLAB數據擬合,其應該如何看,用綠線編輯 - 在右邊。
我試着在Matlab中尋找哈密爾頓路徑,但沒有找到任何直接的命令,是否有一個呢? 而這裏的數據:
data1=[19.4500010000000 50500000;19.4500010000000 52810000;19.4500010000000 55200000;19.4599990000000 55200000;19.6900010000000 48800000;19.7910002000000 55200000;19.8560000000000 55200000;20.0100000000000 55200000;20.1500000000000 55200000;26.8099990000000 54700000;26.8099990000000 54700000;27.8300000000000 54500000;27.8300000000000 54500000;27.8300000000000 54500000;25.4047236012803 43066163.6552646;38.2799990000000 8420000;38.2799990000000 8420000;38.2799990000000 8420000;36.4199980000000 5270000;36.4199980000000 5270000;36.4199980000000 5270000;36.4199980000000 5270000;49.1845567757586 1577538.50621129;47.4100000000000 926524;47.4100000000000 926524;47.4100000000000 926524.000000004;47.4100000000000 926524;61.1736702657022 365441.704934877;58.3499980000000 230682;58.3499980000000 230682;71.8983466422650 108263.586243626;69.5500030000000 74543.3000000000;79.6100010000000 30424.7000000000;79.7029992000000 30424.7000000000;79.7699970000000 30424.7000000000;83.6800000000000 31281.3000000000;83.6800000000000 31693.1300000000;83.6800000000000 32131.1000000000]
c1=[1;5;19;24;29;32;33;34;35;36;37;38;12;11;9;8;7;6;4;3;2;1]
semilogy(data1(:,1),data1(:,2),'-*b')
hold on, semilogy(data1(c1,1),data1(c1,2),'r')
有關StackOverflow的問題一般應包含[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。請[編輯](http://stackoverflow.com/posts/34898713/edit)您的問題,以確保您的問題中的代碼是**最小**(只需要重現的代碼),**完整**(所有需要重現的代碼)和**可驗證的**(我們應該能夠僅使用問題中的代碼重現問題,沒有什麼比這更重要)。 – excaza
我一直希望我的一般解釋能夠適用於現在,因爲我仍在努力獲取所述數據集,但是我現在添加一個小例子來使用。 – Benjikshoo
不清楚你如何定義多邊形,想想例子'[0 0; 0 1; 1 0; -1 0; 0 -1]'。哪個訂單是正確的?什麼時候通過中心點? – Daniel