繁体   English   中英

Matlab:3D功能的2D投影

[英]Matlab: 2D projection of a 3D function

我有一个函数f(x,y)= Exp(-x^2-y^-2)(x^2+y^2) 我想看看这个函数在MATLAB中x轴上的投影。

关于最佳方法的任何想法?

像这样的东西:

xs = [];
ys = [];
zs = [];
for x = -10:0.1:10
    for y = -10:0.1:10
        xs = [xs x];
        ys = [ys y];
        z = f(x,y);
        zs = [zs z];
    end
end
figure; plot3(xs,ys,zs);  %plots the full function over both dimensions
figure; plot(xs,zs,'rx'); %plots the projection onto the x axis
figure; plot(ys,zs,'rx'); %plots the projection onto the y axis

沿x和y在-10到10的范围内执行此操作,但是您可以相应地进行更改。

@Amro有一个很好的解决方案,但是您也可以从MATLAB Central File Exchange中查看Scott Hirsch的出色阴影图 看看这个:

>> f = @(x,y) exp(-x.^2 -y.^(-2)).*(x.^2+y.^2);
>> [X,Y] = meshgrid(-10:0.5:10,-10:0.5:10);
>> surf(X,Y,f(X,Y))
>> xlim([-11,11])
>> ylim([-11,11])
>> shadowplot x
>> shadowplot y

在此处输入图片说明

您可以操纵视图以在x轴上看到2D投影:

f = @(x,y) exp(-x.^2 -y.^(-2)).*(x.^2+y.^2);
[X,Y] = meshgrid(-10:0.5:10,-10:0.5:10);
surf(X,Y,f(X,Y))
view(90,0), shading interp
xlabel X, ylabel Y, zlabel Z

屏幕截图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM