如何使用均匀间隔的值制作3D绘图?

时间:2016-03-06 17:05:52

标签: matlab plot 3d

这是我的作业问题:

  

使用500个均匀间隔的值创建y = sin(2πx), y = cos(2πx)超过[0,π]的3D绘图。

我没有理解这个问题,因为它说要创建y = sin(2*pi*x)y = cos(2*pi*x)的3D图,但这两个函数都是2D图,而不是3D图。所以我要求提示。这些是我得到的提示:

  

对于第二个函数,请使用z = cos(2 pi x),而不是y = cos(2 pi x)

这仍然没有意义。如果我们要创建一个3D绘图,那么z xy都应该是XY的函数。否则它只能被制作成2D图?

她回答说:

  

您必须使用sin值创建3d图,您需要使用linspace命令创建,然后计算Z值(cos)和x值(y)..情节zx = linespace(0, 500); y = sin(2*pi*x); z = cos(2*pi*x); figure; plot3(x, y, z); uvm_component ..

这就是我的尝试:

m_current_phase

这就是我得到的:

enter image description here

我不确定这是否是正确的方法。我是否正确回答了问题?

2 个答案:

答案 0 :(得分:2)

您的困惑更多的是表达您想要绘制的内容的不同方式。您可能想到的是具有两个参数的函数,其看起来像f(x,y)= x + y,通常定义类似于曲面的东西。你收到的是parametric equation。此代码也是如此,只是重写以匹配维基百科使用的符号:

%parametric representation of a spiral
t = linspace(0, pi, 500); %correct use of linspace, see Felix's answer.
x = t;
y = sin(2*pi*t);
z = cos(2*pi*t);

也许让我重新说一下我会问这个问题:

  

为500个均匀间隔的t值创建参数方程x = t,y = sin(2 * pi * t),z = cos(2 * pi * t)的3D图。

调用linspace时也忽略范围[0,pi],该函数名为linspace,而不是linespace

答案 1 :(得分:2)

您只想绘制[0,pi]不超过0到500。

x = linespace(0, 500);

你创建了一个100个值的向量(这是函数linspace的默认值),介于0和500之间。你想要做的是:

x = linspace(0, pi, 500);

将500区间的0到pi区分开。

其余代码没问题。