2017-01-18 6 views
1

Bei einem komplexen Signal habe ich 3 Dimensionen: I-Realteil, Q-Imaginärteil, T-Zeit. ich in der Lage gewesen, das nutzen:Matlab: Graph 2d Linien auf x-, y- und z-Achse in einem 3D-Plot

plot3(I,T,Q) 

das Signal in Matlab plotten. Ich möchte nun das Q-Imaginärteilliniendiagramm zur Z-Ebene und das I-Realteilliniendiagramm zur X, Y-Ebene hinzufügen. Wie kann ich dem Diagramm zusätzliche Zeilen hinzufügen? I enthalten ein Bild von dem, was ich will es so aussehen:

enter image description here

Was ich habe, so weit ist dies:

enter image description here

Antwort

1

kommentiert Code unten:

% hold on for multiple plots 
figure(1) 
hold on 

% Plot 3D Figure 
plot3(I,T,Q) 

% Plot on XY plane - means function in Z = 0 
plot3(I,T,Q.*0) 

% Plot on YZ plane - means function in X = 0 
plot(I.*0,T,Q) 

hold off 

In Ihrem Fall sind die Flugzeuge, die auf der Karte dargestellt werden, nicht die Nullstellen der Achsen. Sie können den Nullvektor in jedem 2D-Plot sein, jede einwertig Vektor festlegen möchten, die Sie die richtige Länge durch Methoden wie diese machen können:

% vector of 2s the same size as Q 
A = (Q./Q).*2; 
% or 
A = ones(size(Q)).*2; 
% or 
A = A.*0 + 2; 

Zum Beispiel Plotten eine ähnliche Funktion zu Deinem Bild:

x = linspace(0,20,1000); 

hold on 
plot3(sin(x),x,cos(x)) 
plot3(sin(x),x,cos(x).*0 - 1) 
plot3(sin(x).*0 + 1,x,cos(x)) 
grid on 
hold off 

3D function with 2D plots

+0

Warum die Notwendigkeit für -1 und +1? – wwjdm

+1

@EliMiller Wie ich versuche, in der Mitte meiner Antwort zu erklären, sollen sie die Plots zu den Ebenen "z = -1" oder "x = + 1" verschieben. Wenn sie Nullen wären, würden sich alle Plots überschneiden. Versuch es selber! Also rein eine ästhetische Sache ... – Wolfie

+0

gibt es eine Möglichkeit, die Zeit T statt 0-20 von 20 auf 0 zu gehen? – wwjdm

Verwandte Themen