我尝试使用Matlab绘制墨西哥帽功能。
x=-20:20;
y=-20:20;
z=(1 - x.^2 -y.^2) * exp(-1/2 * (x.^2 + y.^2))
但我收到了错误:
??? Error using ==> mtimes
Inner matrix dimensions must agree.
我应该如何修复它?感谢
答案 0 :(得分:3)
这里有两个错误。首先,您要使用类似x
之类的内容创建y
和meshgrid
,这样它们就是数组而不是向量(当我们看到它时,让我们看一下更具启发性的内容功能的范围......)
>> [x y] = meshgrid(-5:0.5:5, -5:0.5:5);
其次,您需要逐元素乘法而不是矩阵乘法(.*
而不是*
)。
>> z = (1 - x.^2 -y.^2) .* exp(-1/2 * (x.^2 + y.^2));
应该这样做:
>> surf(z)