MATLAB cftool 曲面图矩阵
MATLAB cftool surface plot matrix
我有一组笛卡尔坐标形式的不规则数据点,使用 MATLAB cftool 可以将其转换为曲面(见下文)。
有谁知道访问 MATLAB 生成的笛卡尔坐标矩阵以绘制此曲面的方法吗?
为此图生成的代码(见下文)无法访问必须生成以适合表面的任何其他插值点。
%% Fit: 'untitled fit 1'.
[xData, yData, zData] = prepareSurfaceData( x1, y1, z1 );
% Set up fittype and options.
ft = 'linearinterp';
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, 'Normalize', 'on' );
% Plot fit with data.
figure( 'Name', 'untitled fit 1' );
h = plot( fitresult, [xData, yData], zData );
legend( h, 'untitled fit 1', 'z1 vs. x1, y1', 'Location', 'NorthEast' );
% Label axes
xlabel x1
ylabel y1
zlabel z1
grid on
提前致谢
作为一种可能的解决方法(可能不是很有效)是绘制拟合 (fitresult
) 的输出并获取 XData
、YData
和 ZData
绘制表面的属性。
例如,执行虚拟拟合后:
hP = plot(fitresult)
为 hP
生成这些属性:
Surface (curvefit.gui.FunctionSurface) with properties:
EdgeColor: [0 0 0]
LineStyle: '-'
FaceColor: 'flat'
FaceLighting: 'flat'
FaceAlpha: 1
XData: [51x49 double]
YData: [51x49 double]
ZData: [51x49 double]
CData: [51x49 double]
所以你可以找回它们。
备选方案
作为替代方案,您可以使用 cftool
生成的代码为函数提供额外的输出参数(称为 createFit
或类似这样的东西)。因此,当您使用足够的参数调用该函数时,您将直接获得这些坐标。
示例:
像这样更改生成函数的 header:
[fitresult, gof,a,b,c] = createFit1(x, y, z)
然后在函数中body:
a = xData;
b = yData;
c = zData;
然后调用命令 Window 中的函数,例如,在 a
、b
和 c
.
中生成正确的坐标
我有一组笛卡尔坐标形式的不规则数据点,使用 MATLAB cftool 可以将其转换为曲面(见下文)。
有谁知道访问 MATLAB 生成的笛卡尔坐标矩阵以绘制此曲面的方法吗?
为此图生成的代码(见下文)无法访问必须生成以适合表面的任何其他插值点。
%% Fit: 'untitled fit 1'.
[xData, yData, zData] = prepareSurfaceData( x1, y1, z1 );
% Set up fittype and options.
ft = 'linearinterp';
% Fit model to data.
[fitresult, gof] = fit( [xData, yData], zData, ft, 'Normalize', 'on' );
% Plot fit with data.
figure( 'Name', 'untitled fit 1' );
h = plot( fitresult, [xData, yData], zData );
legend( h, 'untitled fit 1', 'z1 vs. x1, y1', 'Location', 'NorthEast' );
% Label axes
xlabel x1
ylabel y1
zlabel z1
grid on
提前致谢
作为一种可能的解决方法(可能不是很有效)是绘制拟合 (fitresult
) 的输出并获取 XData
、YData
和 ZData
绘制表面的属性。
例如,执行虚拟拟合后:
hP = plot(fitresult)
为 hP
生成这些属性:
Surface (curvefit.gui.FunctionSurface) with properties:
EdgeColor: [0 0 0]
LineStyle: '-'
FaceColor: 'flat'
FaceLighting: 'flat'
FaceAlpha: 1
XData: [51x49 double]
YData: [51x49 double]
ZData: [51x49 double]
CData: [51x49 double]
所以你可以找回它们。
备选方案
作为替代方案,您可以使用 cftool
生成的代码为函数提供额外的输出参数(称为 createFit
或类似这样的东西)。因此,当您使用足够的参数调用该函数时,您将直接获得这些坐标。
示例:
像这样更改生成函数的 header:
[fitresult, gof,a,b,c] = createFit1(x, y, z)
然后在函数中body:
a = xData;
b = yData;
c = zData;
然后调用命令 Window 中的函数,例如,在 a
、b
和 c
.