我们知道在 Matlab 中为函数 Z(x,y) 绘制等高线图的常用方法是
[X,Y] = meshgrid(-2:.2:2,-2:.2:3);
Z = X.*exp(-X.^2-Y.^2);
(例如)
contour(X,Y,Z);
但是,这种方式不适用于以下函数 f(x,y):
假设 h_{ij}(x,y) 是一个大矩阵(例如 100x100),其中每个分量都是一个(自定义)函数x 和 y。我们定义另一个函数
f(x,y)=det(h_{ij}(x,y))
并想要制作函数 f(x,y) 的等高线图。
f=det(h) 中的行列式要求矩阵 h 的每个分量都是一个数字。所以 f(x,y) 只有当 x 和 y 是数字而不是向量时才能由 Matlab 计算。如果我们使用[X,Y]=meshgrid(...),则表示矩阵h的每个分量都是一个向量,而f(X,Y)无法计算。
有没有办法为上述函数 f(x,y) 制作等高线图,其中 x 和 y 不能取向量值?