假设您有
f(x)=x-floor(x)
。
通过这种方式,您可以通过粘贴顶部和侧面来生成凹槽 底部在一起,然后将左侧挤压到零 - 现在你 有一个圆锥形的螺旋线:线绕着圆锥旋转直到它撞到圆锥体 底部。你已经有了锥形方程的一种形式 螺旋即
x=a*cos(a); y=a*sin(a); z=a
。现在喜欢 here:如何在Matlab中投影圆锥上的圆锥螺旋?
答案 0 :(得分:4)
我会在不使用plot3
的情况下解决您的问题,而是使用meshgrid
和sinc
。请注意,sinc
是一个内置函数的matlab,只有sin(x)./x
,例如:
所以在1-D中,如果我理解正确,你想在sinc(x)
上“投射”sqrt(x.^2)
。您的问题的问题在于您提到点积的投影,但点积减少了维数,因此两个向量的点积给出了标量,并且有两个2D表面 - 一个向量,所以我不明白是什么你的意思是。从你添加的2-D情节我解释了一个问题,即用另一个“装扮”一个函数,就像另外...
以下是实施:
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
的波动。