在 matlab 中用矩阵绘制等高线图
Contour plot with matrices in matlab
我有一个函数f = x^2-2xy+y^2,这是我手算后的3×2×2矩阵的结果。我知道如何使用给定的函数绘制轮廓图,例如 f。如果我有多个 n x 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')
我有一个函数f = x^2-2xy+y^2,这是我手算后的3×2×2矩阵的结果。我知道如何使用给定的函数绘制轮廓图,例如 f。如果我有多个 n x 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')