WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Schleife hochzaehlen - Daten zuweisen

 

drawonmycar.com
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 12.05.09
Wohnort: ---
Version: R2008b
     Beitrag Verfasst am: 03.06.2009, 13:37     Titel: Schleife hochzaehlen - Daten zuweisen
  Antworten mit Zitat      
Hallo!

Gegeben sind 3 Punkte im Raum, diese Punkte sind im Vektorenformat vorhanden:

Code:

M(1,8,i);               %X Wert von Punkt A
M(2,8,i);               %Y Wert von Punkt A
M(3,8,i);               %Z Wert von Punkt A

M(1,6,i);               %X Wert von Punkt B
M(2,6,i);               %Y Wert von Punkt B
M(3,6,i);               %Z Wert von Punkt B
     
M(1,10,i);              %X Wert von Punkt C
M(2,10,i);              %Y Wert von Punkt C
M(3,10,i);              %Z Wert von Punkt C

%i gibt es von 1 bis 45
 


Nun will ich 45mal 2 Verbindungslinien zeichnen. Daher hatte ich folgende idee:

Neue Variablen mx(i); my(i); mz(i) mit Daten fuellen, anschl sollen je zwei Verbindungsvektoren geplottet werden.

Nun weiss ich nicht wie ich die Werte auf der linken Seite richtig hochzaehlen lassen kann? Mein fehlerhafter Code:
Code:


for i=1:45          
        mx(i)(1)= M(1,8,i);
        my(i)(1)= M(2,8,i);
        mz(i)(1)= M(3,8,i);

        mx(i)(2)= M(1,6,i);
        my(i)(2)= M(2,6,i);
        mz(i)(2)= M(3,6,i);
       
        mx(i)(3)= M(1,10,i);
        my(i)(3)= M(2,10,i);
        mz(i)(3)= M(3,10,i);  
       
        plot3(mx(i),my(i),mz(i));
        hold on          
        axis([-1.5, 5, -1.5, 5, -1.5, 5])
end;
 


Viele Gruesse,
DTR
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 03.06.2009, 15:31     Titel:
  Antworten mit Zitat      
Hallo DTR,

mein Vorschlag ohne Schleife:

Code:
abc = [6,8,10];
mx = squeeze(M(1,abc,:));
my = squeeze(M(2,abc,:));
mz = squeeze(M(3,abc,:));

plot3(mx,my,mz);


squeeze ist dabei erforderlich, um aus 1x3x45-Arrays formal 3x45-Arrays zu machen.

Oder wolltest Du für je drei Punkte eine eigene Grafik?

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
drawonmycar.com
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 12.05.09
Wohnort: ---
Version: R2008b
     Beitrag Verfasst am: 04.06.2009, 10:31     Titel:
  Antworten mit Zitat      
Hallo Bijick,

Dein Beispiel laeuft bei mir noch nicht, habe mal ein Bild angehaengt wie es aussehen soll.
Nur fuer das plotten der Linien habe ich jedoch ca 600 Zeilen Code noetig gehabt, da ich die genannte Schleife ohne Schleife angewandt habe.

Die Punkte plotte ich separat.

Viele Gruesse
DTR

2009_06_04connected vectors.jpg
 Beschreibung:
orthogonal vektoren

Download
 Dateiname:  2009_06_04connected vectors.jpg
 Dateigröße:  134.28 KB
 Heruntergeladen:  647 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 04.06.2009, 11:00     Titel:
  Antworten mit Zitat      
Hallo DTR,

ich verstehe die Aufgabe jetzt so: Du hast 45 Tripel von Punkten A, B, C im R^3, die in den Farben Rot, Grün und Blau als Punkte gezeichnet werden. Das klappt soweit. Jetzt möchtest Du jeweils A und B sowie B und C mit 2*45 schwarzen Linien verbinden. Die Darstellung soll dann als zweidimensionale Projektion erfolgen.

Bitte beschreibe "läuft bei mir noch nicht" näher. Gibt es eine Fehlermeldung? Wie sieht sie aus? Oder ist nur das Ergebnis anders als gewünscht? Wie ist es und wie soll es stattdessen sein? Das Verbinden der Punkte sollte mit meinem Code funktionieren, wenn M ein 3x10x45-Array ist. Ich habe es mit einer Zufallsmatrix

Code:
M = rand(3,10,45);


getestet. Schwarz werden die Linien mit

Code:
plot3(mx,my,mz,'k');


Eine zweidimenionale Projektion erhält man beispielsweise mit

Code:
view([90 0 0]) % nach dem plot3-Befehl


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
drawonmycar.com
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 12.05.09
Wohnort: ---
Version: R2008b
     Beitrag Verfasst am: 04.06.2009, 14:26     Titel:
  Antworten mit Zitat      
Hallo Bijick,

mein Fehler. M ist 3x13x45 und die Darstellung soll im R^3 erfolgen.

ich hatte 'hold on' vergessen, daher erhielt ich keine Fehlermeldung und es wurde nichts angezeigt.

Die Verbindungen liefen noch in der flaschen Reihenfolge, was durch aendern der Reihenfolge in 8,6,10 behoben wurde.

Vielen vielen Dank!!!
DTR
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.