如何在Matlab中显示.msh文件?

时间:2013-10-08 08:27:58

标签: matlab matlab-figure

如何在Mat实验室中显示我的网格文件(包含x和z点的行和列)?我尝试过使用冲浪选项,但我无法这样做。我想在冲浪图中显示我的网格(即网格的形状)

2 个答案:

答案 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

即可

the cube is a lie

surf实际上并非设计用于绘制任意曲面或复杂网格;适用于z = f(x,y);的情况。 mesh也是如此。更好的方法是定义点的连接方式并使用patch(链接到文档)。重要的路线基本上是:

patch('Vertices',vertex_matrix,'Faces',faces_matrix)

vertex_matrixMfaces_matrix表示哪些顶点连接在一起。文件交换中有各种示例,用于导入CAD网格并转换为patch的合适格式,例如this用于STL文件。

答案 1 :(得分:0)

由于我使用.msh CFD文件,我通过QuickerSim CFD模块打开它们。

代码是这样的:

[p,e,t] = importMeshGmsh('nameoffile.msh');
displayMesh2D(p,t);