Verfasst am: 16.12.2009, 14:36
Titel: contour3 in verschiedenen Ebenen plotten
Hallo,
leider finde ich nicht selber die Lösung für mein Problem, weswegen ich hoffe, dass mir hier jemand helfen kann.
Ich habe ein x-y_Gitter erzeugt, in dem ich, für jeden Gitterpunkt einen Wert habe, den ich in eine Matrix C schreibe. Dies kann ich super mit contour plotten. Nun habe ich aber nicht nur x und y-Werte, sondern auch z-Werte. Über eine Schleife erzeuge ich jeweils eine neue C-Matrix mit den Werten, die zu dem jeweiligen z-wert gehören.
Diese Contour-plots plotte ich nun mit contour3, aber alle Cs werden in einer Ebene (der Nullebene) geplotte. Ich möchte natürlich, dass der Contourplot der Matrix C, die zu Z = 1000 gehört in der Ebene Z = 1000 geplottet wird.
Nun habe ich schon versucht die Matrix C mit dem Wert Z zu addieren, aber dann Stimmen natürlich auch nicht mehr die Werte der Matrix.
for k = 1:1:kend
C = zeros(iend,iend);
D = zeros(iend,iend);
E = zeros(iend,iend);
F = zeros(iend,iend);
G = zeros(iend,iend);
zg = zmin-dz+k*dz;
for i = 1:1:iend;
for j = 1:1:jend;
f0 = 10;
xg = xmin-dx+i*dx;
yg = ymin-dy+j*dy;
% Receiverposition
xr1 = 2470.5;
yr1 = 1318.7;
zr1 = 3000;
for l = 1:1:5;
%Abstand zwischen Gitterpunkten und Receiver
R1 = sqrt((xr1-xg)^2+(yr1-yg)^2+(zr1-zg)^2);
for m = 1:1:100;
vmax1 = vmin/exp(-pi*f0*R1/(Q*vs));
M01 = (R1*vmax1*rho*vs/0.0686)^3/dsigma^2;
Mw1 = 2/3*log10(M01)-6.1;
f1 = K*vs/(2*pi)*(16*dsigma/(7*M01))^(1/3);
if(abs(f1-f0) < 0.1) if l == 1
C(j,i) = C(j,i) + Mw1;
elseif l == 2
D(j,i) = D(j,i) + Mw1;
elseif l == 3
E(j,i) = E(j,i) + Mw1;
elseif l == 4
F(j,i) = F(j,i) + Mw1;
elseif l == 5
G(j,i) = G(j,i) + Mw1;
end break else
f0 = f0+(f1-f0)*0.2;
end end end end end figure(1)
x = xmin:dx:xmax;
y = ymin:dy:ymax;
[X,Y] = meshgrid(x,y);
[A,B] = contour3(X,Y,C);
axis('equal') xlim([xmin xmax]) ylim([ymin ymax]) zlim([zmin zmax]) grid on
t = colorbar;
set(gca,'zdir','reverse') hold on
end
Jetzt habe ich erst gesehen,. dass es gar nicht die Nullebene ist, sondern die Ebene die jeweils der Wert der Matrix ist, das ist noch schlechter.
Gibt es denn vielleicht eine andere Möglichkeit als contour3?
Damit habe ich auch schon gebastelt, aber ich verstehe nicht, wei das geht.
Also ich habe mir das Beispiel aus der Hilfe angesehen, aber irgendwie weiß ich nicht, wie ich das aus meine Sache anwenden soll:
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.