Matlab与三维体积

Matlab与三维体积,matlab,3d,latitude-longitude,volumes,Matlab,3d,Latitude Longitude,Volumes,我想从以下数据集创建一个三维体积。Matlab中有没有一个函数可以帮助我,或者我需要构造更多的数据顶点?尝试了fill3(),但这仅创建顶部和底部曲面,而不是侧面 latitude longitude lowerAltitude upperAltitude -73.8124 40.6422 100 200 -73.8119 40.6485 100 200 -73.8377 40.659

我想从以下数据集创建一个三维体积。Matlab中有没有一个函数可以帮助我,或者我需要构造更多的数据顶点?尝试了fill3(),但这仅创建顶部和底部曲面,而不是侧面

latitude    longitude   lowerAltitude   upperAltitude
-73.8124    40.6422        100             200 
-73.8119    40.6485        100             200 
-73.8377    40.6597        100             1500 
-73.86      40.6671        100             1600 
-73.8849    40.6377        100             1800 
-73.875     40.6302        100             1800 
-73.8525    40.6518        100             1600 
-73.8401    40.6539        100             1500 
-73.8124    40.6422        100             200 
问候。 BSL

您可以创建一组您拥有的点,并可视化该曲面。请注意,您需要重新排列数据,以便为当前拥有的每条线创建两个点。例如,示例中的第一行需要拆分为两点,如下所示。这三列将是您的X、Y和Z


附言。在充分考虑了我在三维体积(x,y,z)内检测点(x,y,z)的目标后,我决定采用一种简单的两步方法。1) 使用inpolygon检测X、Y周长中是否存在该点。2) 如果x,y点位于区域底部周长内(x,y,Z=Z0),则测试最小值(Z)。您能解释该数据代表什么吗?(我不清楚它的体积大小)。如果可以将其转换为体素栅格,则可以使用此功能。假设(完成后)是以较低高度为底面的空域体积,而上表面高度可变。我想我可以为侧面创建一组面板,每个面板描述为P[j]=[lon[j]lat[j]lowAlt[j];lon[j+1]lat[j+1]lowAlt[j+1];lon[j+1]lat[j+1]upAlt[j+1];lon[j]lat[j]upAlt[j];lon[j]lat[j]lowAlt[j]<代码>补丁应该有帮助。请参阅:补丁建议。我可以用它来创建我的面板。但是,要创建3D对象,我不需要将面板“缝合”在一起吗?最终目标是拥有一个具有节点连通性的体积,即s.t。我可以测试该体积内是否存在3d点(纬度、经度、高度)。我可以通过切片测试在2D中实现这一点,但这是一件痛苦的事情。如果你有映射工具箱,你可能会发现它很有用,它似乎在Matlab中使用了n空间的lat/long/alt数据凸包,是的。但周长的二维投影并非在所有情况下都是凸的。有些具有凹面,因此凸面外壳将“覆盖”实际边界周围的周长,并包围实际周长之外的空间。确定。“冲浪”建议取得了进展。问题:[x,y,z]=球体(20)的示例为x,y,z创建了三个21 x 21矩阵。这些都被surf()很好地接受。有什么方法可以获取我的数据并创建所需的矩阵吗?

latitude    longitude   Altitude 
-73.8124    40.6422        100
-73.8124    40.6422        200