www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathe-Software" - Plotten in Matlab
Plotten in Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Plotten in Matlab: 3D Plots
Status: (Frage) beantwortet Status 
Datum: 17:03 Mo 08.01.2007
Autor: Freddy1983

Hi!

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Ich habe eine Matrix mit meinen Messdaten (3-Dimensional, also p,T,v) und will jetzt die einzelnen Punkte plotten.
Das bekomm ich ja noch hin.
Wie kann ich jetzt aber den einzelnen Punkten verschiedene Typen, also einmal soll es ein Kreis sein, das andere mal ein Kreuz usw, zuordnen? Ich kann jeden einzelnen Punkt selbst plotten lassen und am Schluss zusammenfügen, schönes wäre es jedoch, wenn ich ein 4d-Array hätte und das plotten lassen könnte.
Weiß jemand wie ich das hinbekomme?

Gruß Freddy

        
Bezug
Plotten in Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 22:07 Mo 08.01.2007
Autor: Martin243

Hallo,

ich denke, eine direkte Möglichkeit gibt es hierfür nicht, aber wir können ja etwas basteln.
Seien x, y und z Spaltenvektoren gleicher Länge, die die Koordinaten unserer Datenpunkte enthalten. Wir wollen die Punkte mit 3 verschiedenen Symbolen darstellen, z.B. (1) Stern, (2) Punkt und (3) mit Linie verbunden.
Nun können wir einen weiteren Vektor derselben Länge anlegen, der für jeden Punkt eine 1, 2 oder 3 enthält, also die Nr. des Symbols. Nennen wir diesen Vektor mal symb.

Nun können wir uns ein Indexarray aufbauen, das die Aufteilung in verschiedene Gruppen übernimmt:

symbRange = (1:length(symb))';
for i=1:max(symb),
  idx(symbRange, i) = symbRange.*(symb==i);
  idx(1,i) = min(find(symb==i)); idx(end,i) = max(find(symb==i));
  idx(symbRange,i) = interp1(find(ind(:,i)>0),ind(find(ind(:,i)>0),i),symbRange,'nearest');
end;
set(0,'DefaultAxesLineStyleOrder','*|.|-','DefaultAxesColorOrder',[1 0 0]);
plot3(x(idx), y(idx), z(idx));

Du kannst es ja mal ausprobieren. Es reicht 1 plot3-Aufruf aus. Natürlich können noch andere Symbole benutzt werden. Dazu muss man nur in dem set-Aufruf den String '*|.|-' entsprechend modifizieren.


Gruß
Martin



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]