从MATLAB .FIG表面提取(Extract surface from matlab .fig)

2019-09-26 19:44发布

我有一个包含一些点,并安装到它们的表面的MATLAB .FIG文件。 我想表面从图中提取的,我想有两个顶点和面。 能否请您给我提供关于如何实现这一些提示?

我的人物可以在这里找到: https://drive.google.com/file/d/0By376R0mxORYU3JsRWw1WjllWHc/view?usp=sharing ,我想没有蓝点表面提取。

编辑:这是不是重复,见下面我的评论,为什么。

Answer 1:

用于绘制任一表面和点处的数据被存储在图中。

因此,您可以:

  • 打开图
  • 获得从图中的数据
  • 得到这个数字的孩子,在thsi情况下轴
  • 提取表单的轴,在X,Y和Z的数据表面的

该轴线实际上包含了两个一组数据:

  • 存储在z(1)的点的数据XDataYDataZData
  • 存储在z(2)的表面的数据XDataYDataZData

这是代码(以“点号”):

% Open the figure
open('cubicinterp.fig')
% Get the data from the figure
x=gcf
% Get the children of the figure (in this case the axes)
y=x.Children
% Get the data used to plot on the axes
z=y.Children

figure
XX=z(2).XData;
YY=z(2).YData;
ZZ=z(2).ZData;
CCDD=z(2).CData;
surf(XX,YY,ZZ,CCDD)
return

这是没有“点号”的代码(R2014b之前)

% Open the figure
open('cubicinterp.fig')
% Get the data from the figure
x=gcf
% Get the children of the figure (in this case the axes)
y_1=get(gcf,'children');
% Get the data used to plot on the axes
z_1=get(y_1,'children');

figure
XX=get(z_1(2),'xdata');
YY=get(z_1(2),'ydata');
ZZ=get(z_1(2),'zdata');
CCDD=get(z_1(2),'Cdata');
surf(XX,YY,ZZ,CCDD)

这是所提取的面:

希望这可以帮助。

Qapla“



文章来源: Extract surface from matlab .fig