通过拟合具有不同z值的许多2D图来生成3D表面图

时间:2017-10-26 08:35:57

标签: matlab plot matlab-figure surface

我想实现3D表面图。我的输出如下。

对于z的特定值,我得到x的每个值的y(x范围像{{1}})。

然后我改变z,并且对于相同的x范围,我得到y值。

结果可以在离散z值处显示为2D图,包括x的范围及其对应的y。这是我原来的情节:

Vimeo Android Library

我想创建一个3D表面图,就像在上面的2D图上包裹的毯子一样。

1 个答案:

答案 0 :(得分:3)

以下是两种类型图的示例:

figure
hold on
grid on
view(30,40)
x = 0:.01:4;
z = .3:.3:3;
y = NaN(numel(x), numel(z));
for k = 1:numel(z)
    y(:,k) = abs((4-x).*sin(x/(1+z(k)))); % compute a vector as function output
        % for input vector x, for each z. Store as a column in matrix y
    plot3(x,repmat(z(k),size(x)),y(:,k)) % plot in 3D space
end

figure
surf(x,z,y.','edgecolor','none') % surface plot
view(30,40)
grid on

enter image description here

enter image description here