如何在Mat实验室中显示我的网格文件(包含x和z点的行和列)?我尝试过使用冲浪选项,但我无法这样做。我想在冲浪图中显示我的网格(即网格的形状)
答案 0 :(得分:0)
老实说,如果你的输出来自像Gambit这样的程序,我认为你根本不想使用surf
。 (扰流板:如果您可以将网格导出为STL,只需阅读此答案的最后一行并单击链接)。
第一个问题:如果您只是对刚加载的数据surf(M)
,Matlab将不会(不能)确定您希望这些是x,y和ž。来自文档:
surf(Z)从z创建一个三维阴影表面 矩阵Z中的分量,使用x = 1:n和y = 1:m,其中[m,n] = 尺寸(Z)。高度Z是在a上定义的单值函数 几何矩形网格。 Z指定颜色数据,以及 表面高度,因此颜色与表面高度成正比。
下一个问题:即使您提取X,Y和Z点并致电surf(X,Y,Z)
,您也可能会收到此错误:
Z必须是矩阵,而不是标量或向量。
这是因为surf
期望Z是n×m矩阵,其中x和y分别是大小为n和m的向量,或者是与z具有相同大小的矩阵。即x = 1:10,y = 1:10,z为10×10矩阵是可接受的,或三个10×10矩阵。
最后一个问题:取决于您尝试绘制的曲面的形状/性质。我们无法保证surf
以任何类似于您最初设计的网格的方式绘制您的数据。例如,只需在简单多维数据集的角落列出点并调用surf
:
surf
实际上并非设计用于绘制任意曲面或复杂网格;适用于z = f(x,y);
的情况。 mesh
也是如此。更好的方法是定义点的连接方式并使用patch(链接到文档)。重要的路线基本上是:
patch('Vertices',vertex_matrix,'Faces',faces_matrix)
vertex_matrix
是M
,faces_matrix
表示哪些顶点连接在一起。文件交换中有各种示例,用于导入CAD网格并转换为patch
的合适格式,例如this用于STL文件。
答案 1 :(得分:0)
由于我使用.msh
CFD
文件,我通过QuickerSim CFD
模块打开它们。
代码是这样的:
[p,e,t] = importMeshGmsh('nameoffile.msh');
displayMesh2D(p,t);