matlab contourf用于矩阵向量函数

时间:2013-10-26 12:18:07

标签: matlab

我正在尝试使用x ^ TAx-b ^ Tx形式的函数的等高线图,其中$ x $是2维向量,A是2x2矩阵。我尝试使用以下代码进行绘图:

[x,y] = meshgrid(-5:0.1:5, -5:0.1:5);
z = x'*A*x - b'*x;
contourf(x,y,z);

显然这不起作用,因为这有一些尺寸问题。但是,我怎么能做这种轮廓图呢?

1 个答案:

答案 0 :(得分:0)

z的计算中的x是点的x和y坐标的向量,而不是x坐标的矩阵,正如您所使用的那样。此代码获取每个点的x和y坐标,在该点计算z,然后将其放回到正确大小的矩阵中。

[x,y] = meshgrid(-5:0.1:5, -5:0.1:5);
X=[x(:)';y(:)'];
for i=1:length(X)       
    z(i) = X(:,i)'*A*X(:,i) - b*X(:,i);
end
z=reshape(z,size(x));
contourf(x,y,z);