在Matlab中绘制特殊函数(2D Bessel)
我试图从本质上得到这样的东西,在那里我可以看到底部清晰的涟漪,但除此之外,它就像高斯曲线: 这有点不令人满意,因为涟漪不是很明显,它有一个非常粗糙的质量,使图像模糊了一点,如果你移动图形,使它只是在2D中(因此它看起来像一个圆),我甚至不确定它是否与它应该是什么样子(同心圆在现实中似乎间隔更均匀)。那么,有没有更好的方法在Matlab中绘制特殊函数(2D Bessel),matlab,Matlab,我试图从本质上得到这样的东西,在那里我可以看到底部清晰的涟漪,但除此之外,它就像高斯曲线: 这有点不令人满意,因为涟漪不是很明显,它有一个非常粗糙的质量,使图像模糊了一点,如果你移动图形,使它只是在2D中(因此它看起来像一个圆),我甚至不确定它是否与它应该是什么样子(同心圆在现实中似乎间隔更均匀)。那么,有没有更好的方法 a = 2*pi; [X Y] = meshgrid(-1:0.01:1,-1:0.01:1); R = sqrt(X.^2+Y.^2); f = (2*besselj(1,
a = 2*pi;
[X Y] = meshgrid(-1:0.01:1,-1:0.01:1);
R = sqrt(X.^2+Y.^2);
f = (2*besselj(1,a*R(:))./R(:)).^2;
mesh(X,Y,reshape(f,size(X)));
axis vis3d;
您需要更改颜色贴图,或更改曲面特性并显示具有反射的形状。看一看你能做的一切。例如:
a = 2*pi;
[X Y] = meshgrid(-1:0.01:1,-1:0.01:1);
R = sqrt(X.^2+Y.^2);
f = (2*besselj(1,a*R(:))./R(:)).^2;
h=mesh(X,Y,reshape(f,size(X)));
axis vis3d;
%# change from mesh to solid surface with no lines
set(h,'FaceColor','interp','edgeColor','none','facelighting','phong');
%# set reflectance
material shiny
%# add light. Change the position to see different reflections
light('Position',[10 0 10],'Style','local');
这是你想要的吗
冲浪
代码
你基本上已经问过这个了:。请避免多次发布同一问题。如果您需要完善以前的问题,请单击“编辑”链接进行修改。如果您在问题下方看不到“编辑”链接,可能是因为您有3个不同的帐户()。尝试获得OpenID登录,并合并这些帐户,这样您就不必重复问题,这是不赞成的。
a = 2*pi;
[X Y] = meshgrid(-1:0.1:1,-1:0.1:1);
R = sqrt(X.^2+Y.^2);
f = (2*besselj(1,a*R(:))./R(:)).^2;
h=surf(X,Y,reshape(f,size(X)));
axis vis3d;
set(h,'FaceAlpha',0)