2013-10-26 131 views
0

我正在嘗試做形式爲x^TAx-b^Tx的函數的輪廓圖,其中$ x $是二維向量,A是一個2×2矩陣。我試着用下面的代碼進行繪圖:矩陣向量函數的matlab contourf

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

顯然這不起作用,因爲這有一些尺寸問題。但是,我該如何做這種輪廓圖呢?

回答

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); 
+0

這是非常有幫助的,謝謝! – dinosaur