matlab中带矩阵的等高线图

时间:2016-04-05 01:07:33

标签: matlab plot contour

我有一个函数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] ^ T A ^ T D A [x y]。我知道的唯一方法是f = @(x,y)[x,y]。' A ^ T D A [x,y],但这给了我一个错误,因为维度不同意。

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

1 个答案:

答案 0 :(得分:1)

根据您的描述,您需要更好地描述。

[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')