假设你有
f(x)=x-floor(x)
.通过这种方式,您可以通过将顶部和底部粘合在一起然后将左侧挤压为零来生成凹槽 - 现在您有一个锥形螺旋:线围绕锥形旋转直到它碰到底部。你已经有了圆锥螺旋方程的一种形式,即
x=a*cos(a); y=a*sin(a); z=a
。现在像 这里:你如何在 Matlab 中将锥形螺旋投影到圆锥上?
我会在不使用的情况下解决您的问题plot3
,而是使用meshgrid
and sinc
。请注意,这sinc
是一个 matlab 内置的函数,sin(x)./x
例如:
所以在一维中,如果我理解正确,你想sinc(x)
在sqrt(x.^2)
. 你的问题的问题是你提到了点积的投影,但是点积会降低维度,所以两个向量的点积给出一个标量,两个二维表面的一个向量,所以我不明白什么你的意思是。从您添加的二维图中,我将问题解释为将一个功能与另一个功能“搭配”,例如...
这是实现:
N=64;
[x y]=meshgrid(linspace(-3*pi,3*pi,N),linspace(-3*pi,3*pi,N));
t=sqrt(x.^2+y.^2);
f=t+2*sinc(t);
subplot(1,2,1)
mesh(x,y,f) ; axis vis3d
subplot(1,2,2)
mesh(x,y,f)
view(0,0) ; axis square
colormap bone
中的因素2
是sinc
为了更好地可视化 的波动sinc
。