图表中的差异 3D 图与函数
Differences in graphs 3D plot with functions
我有这个功能:
在 WolframAlpha 中,这是图表:
在 MatLab 中我使用了这段代码:
clc; clear; close all
[x,y]=meshgrid(-1:.1:1);
e = exp(1);
z=(e^-x^2)+((e^-2)*(y^2))
surf(x,y,real(z));
并打印这张图:
为什么会出现这种差异?我做错了什么?
您在执行 x^2
和 y^2
时无意中执行了矩阵乘法。要对矩阵进行逐元素平方,请执行 x.^2
和 y.^2
。
此外,虽然从技术上讲不是错误,但当您已经有 exp
可用时,e=exp(1)
就有点矫枉过正了。
总之,
[x,y]=meshgrid(-1:.1:1);
z=exp(-x.^2)+(y.^2)./exp(2);
surf(x,y,z);
输入都是真实的,所以我删除了对 real
的调用。 ./
在这种情况下可以只是简单的 /
因为 exp(2)
是一个标量,但我更喜欢正确。
我有这个功能:
在 WolframAlpha 中,这是图表:
在 MatLab 中我使用了这段代码:
clc; clear; close all
[x,y]=meshgrid(-1:.1:1);
e = exp(1);
z=(e^-x^2)+((e^-2)*(y^2))
surf(x,y,real(z));
并打印这张图:
为什么会出现这种差异?我做错了什么?
您在执行 x^2
和 y^2
时无意中执行了矩阵乘法。要对矩阵进行逐元素平方,请执行 x.^2
和 y.^2
。
此外,虽然从技术上讲不是错误,但当您已经有 exp
可用时,e=exp(1)
就有点矫枉过正了。
总之,
[x,y]=meshgrid(-1:.1:1);
z=exp(-x.^2)+(y.^2)./exp(2);
surf(x,y,z);
输入都是真实的,所以我删除了对 real
的调用。 ./
在这种情况下可以只是简单的 /
因为 exp(2)
是一个标量,但我更喜欢正确。