1

我尝试使用 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.

我该怎么做才能修复它?谢谢

4

1 回答 1

3

这里有两个错误。首先,你想创建你的xy使用类似的东西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)

在此处输入图像描述

于 2013-02-02T23:02:09.267 回答