我有一个matlab .fig文件,其中包含一些点和适合它们的表面。我想从图中提取表面,我希望同时具有顶点和面。你能否提供一些关于如何实现这一目标的提示?
我的数据可以在这里找到:https://drive.google.com/file/d/0By376R0mxORYU3JsRWw1WjllWHc/view?usp=sharing我想在没有蓝点的情况下提取表面。
编辑:这不是重复,请参阅下面的评论,为什么。
答案 0 :(得分:2)
用于绘制曲面和点的数据存储在图中。
因此你可以:
轴实际上包含两组数据:
XData
,YData
,ZData
XData
,YData
,ZData
这是代码(使用"点符号"):
% 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'