在matlab中使用矩阵绘制等高线



我有一个函数f=x^2-2xy+y^2,这是我手工计算后的3个2乘2矩阵的结果。我知道如何用f这样的给定函数绘制等高线。如果我有多个n乘m矩阵,如何在matlab中绘制它们而不计算它们来获得f。

例如,A=[1 0;-1 1;0-1];D=[1 0 0;0 2 0;0 0 4];那么我将有f=[x y]^TA^TDA[x y]。我唯一知道的是f=@(x,y)[x,y]A^TDA[x,y],但这给了我一个错误,因为尺寸不一致。

有办法做到这一点吗?感谢

根据您的描述,您需要对其进行更好的描述。

[X, Y] = meshgrid(0:0.1:10, 0:0.1:10);
f =@(x,y) cellfun(@(c) c*A'*D*A*c', num2cell([x,y],2));
colormap(jet);
contourf(X, Y, reshape(f(X(:), Y(:)), size(X)),20,'LineStyle','none')

最新更新