我有这个功能:
在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));
打印此图表:
为什么会出现这种差异?我做错了什么?
答案 0 :(得分:4)
执行x^2
和y^2
时,您无意中执行了矩阵乘法。要执行矩阵的元素平方,请执行x.^2
和y.^2
。
此外,虽然从技术上讲不是错误,但e=exp(1)
只有在exp
已经可用时才有效。
总之,
[x,y]=meshgrid(-1:.1:1);
z=exp(-x.^2)+(y.^2)./exp(2);
surf(x,y,z);
输入都是真实的,所以我删除了对real
的调用。在这种情况下,./
可以只是/
,因为exp(2)
是一个标量,但我更喜欢正确。