这是我的作业问题:
使用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
x
和y
都应该是X
和Y
的函数。否则它只能被制作成2D图?
她回答说:
您必须使用
sin
值创建3d图,您需要使用linspace命令创建,然后计算Z
值(cos
)和x
值(y
)..情节z
,x = linespace(0, 500); y = sin(2*pi*x); z = cos(2*pi*x); figure; plot3(x, y, z);
和uvm_component
..
这就是我的尝试:
m_current_phase
这就是我得到的:
我不确定这是否是正确的方法。我是否正确回答了问题?
答案 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区分开。
其余代码没问题。