2016-04-05 11 views
0

Ich habe eine Funktion f = x^2-2xy + y^2, das ist das Ergebnis von 3 2 mal 2 Matrizen, nachdem ich das von Hand berechnet habe. Ich weiß, wie man den Plot mit einer gegebenen Funktion wie f konturiert. Wenn ich mehrere n mal m Matrizen habe, wie zeichne ich sie in Matlab, ohne sie zu berechnen, um f zu erhalten.Konturdiagramm mit Matrizen in Matlab

Wie A = [1 0; -1 1; 0 -1]; D = [1 0 0; 0 2 0; 0 0 4]; dann habe ich f = [xy]^T A^T D A [x y]. Der einzige Weg, den ich kenne, ist f = @ (x, y) [x, y]. ' A^T D A [x, y], aber das gibt mir einen Fehler, da die Abmessungen nicht übereinstimmen.

Gibt es eine Möglichkeit, dies zu tun? Danke

+0

Es ist nicht klar, was Sie wollen. – user1543042

+0

@ user1543042 Ich möchte Konturdiagramm f = [x, y]^T ADA [x, y] wo A, D, x sind Matrizen – Simple

+0

Was ist 'T'? Geben Sie ein Beispiel "x", "T" und "D". Mit einem Beispiel "f". – user1543042

Antwort

1

Basiert auf Ihrer Beschreibung, die Sie besser beschreiben müssen.

[X, Y] = meshgrid(0:0.1:10, 0:0.1:10); 
f [email protected](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')