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

2D, 3D Plotten einer Welle anhand von 3 Spalten einer Matrix

 

sKelet0n
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2015, 09:12     Titel: 2D, 3D Plotten einer Welle anhand von 3 Spalten einer Matrix
  Antworten mit Zitat      
Hi

Meine Matrix sieht so aus:
Code:
A =

  Columns 1 through 4

          300          200          200          7.9
          400          400          200          7.9
          300          200          200          7.9
          300          300          300          7.9
          200          200          200          7.9
          200          300          300          7.9
          300          300          200          7.9
          200          200          200          7.9
          200          200          300          7.9
          300          300          300          7.9
          400          200          300          7.9
          100          300          300          7.9
          200          200          200          7.9

  Column 5

        81000
        81000
        81000
        81000
        81000
        81000
        81000
        81000
        81000
        81000
        81000
        81000
        81000


Ich möchte nun eine Welle plotten. Die erste Spalte sollen meine X-Werte sein und die 2. und 3. Spalte meine Y-Werte, da auch Konus sowie Hohlzylinder-Elemente vorhanden sind.

Code:
plot(A(:,1),A(:,2),A(:,1),A(:,3))                  %Plottet die Spalte 1&2 der Matrix A (noch falsch)
xlabel ('Länge [mm]')                  %Benennung der X-Achse
ylabel ('Durchmesser [mm]')               %Benennung der Y-Achse


Das Ergebnis sollte in 2D so aussehen:
https://www.dropbox.com/s/12hk6jmy5.....lle%20Geometrie3.JPG?dl=0

Kann mir da einer helfen?
Private Nachricht senden Benutzer-Profile anzeigen


sKelet0n
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2015, 09:58     Titel:
  Antworten mit Zitat      
Ah, ich hab schonaml herausgefunden, dass ich mit
Code:
anstatt mit
Code:
arbeiten muss. Das Problem ist jetzt, dass die X-Werte immer wieder im Koordinatenursprung anfangen, und nicht beim jeweiligen letzten X-Wert, also addiert werden...

Und dann am Ende muss das noch um die X-Achse rotiert werden...
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 15.10.2015, 10:18     Titel:
  Antworten mit Zitat      
Zitat:
. Die erste Spalte sollen meine X-Werte sein und die 2. und 3. Spalte meine Y-Werte, da auch Konus sowie Hohlzylinder-Elemente vorhanden sind.
das verstehe ich schon nicht.
wenn du eine 3d figur haben willst würde ich mit surface arbeiten und das ganze in drei flächen aufteilen. außenfläche innenfläche und schnittfläche.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
sKelet0n
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2015, 10:25     Titel:
  Antworten mit Zitat      
Ja
Code:
füllt ja den Graph bis zur X-Achse. So würden jedoch keine Hohl-Zylinder entstehen, oder hab ich was verpasst. Versuchen wir zunächst erstmal mit zwei Spalten zu arbeiten, damit ich das auch nach und nach verstehen kann.

Ich habe also zwei Spalten. Das Problem ist, dass das noch nicht die wahren Koordinaten sind, sondern Abmessungen der einzelnen Abschnitte der Welle. Jetzt frage ich mich ob Matlab das alles so regeln kann, oder ob ich zunächst die wahren X-Werte berechnen muss. Plotten, oder area wir die Spalten so wie ich sie habe, fängt der ja bei (300/200) an. Allerdings müsste er bei (0/200) anfangen, da es sich ja um eine Welle handeln soll.

Edit:
Sofern das wirklich vor dem area/plot erst berechnet werden muss wie geht das am besten? Indem ich eine neue Matrix berechne mit Koordinaten? Oden geht das über Flächen vllt leichter?


Eine neue Matrix könn zB so aussehen:
Spalte 1 (von oben nach unten): 0, A(1:1), B(1:n-1)+A(1:n), und dann den Rest mit dieser Funktion auffüllen. Die Funktion klappt warscheinlich so auch nicht. Bin leider totaler Matlab Anfänger. Was ich damit ausdrücken will ist, dass der erste X-Werte 0 sein soll, und der zweite hier:200 sein, und der dritte soll halt nicht 400 sondern 700 sein. Also eine Addition mit dem vorherigen X-Wertes.
Ich hoffe das ich das jetzt verständlich beschrieben habe^^
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 15.10.2015, 10:56     Titel:
  Antworten mit Zitat      
Zitat:
Also eine Addition mit dem vorherigen X-Wertes.

cumsum könnte dabei hilfreich sein. wenn du weiterhin mit area arbeiten willst habe ich wohl das problem falsch verstanden. ich dachte du woltlest ein bild erzeugen wie das was du gepostet hast.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
sKelet0n
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2015, 11:02     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
Zitat:
Also eine Addition mit dem vorherigen X-Wertes.

cumsum könnte dabei hilfreich sein. wenn du weiterhin mit area arbeiten willst habe ich wohl das problem falsch verstanden. ich dachte du woltlest ein bild erzeugen wie das was du gepostet hast.


Ja ne hast du richtig verstanden. In 2D den Querschnitt, und in 3D halt die Welle in 3D. Das ist erstmal das Ziel. Das Problem ist, dass die die Werte in den Spalten die Abmessungen von den einzelnen "Abschnitten" sind und keine Koordinaten. Oder ist das gar kein Problem? Und das nächste Problem ist, dass es unendlich viele Zeilen geben kann. Sprich die Welle kann, sofern Datensätze vorhanden sind, unendlich Lang werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 15.10.2015, 11:10     Titel:
  Antworten mit Zitat      
bitte quote nicht den ganzen post. er steht sowieso über deinem. das komplette zitieren des beitrags ist nicht sinnvoll.
Zitat:
Und das nächste Problem ist, dass es unendlich viele Zeilen geben kann.

das bezweifle ich. es kann vielleicht sehr lang werden aber undendlich lang ist bei endlichem speicher nicht möglich Smile
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
sKelet0n
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2015, 11:14     Titel:
  Antworten mit Zitat      
Ja ich wollte nur damit sagen, dass die Anzahl der Zeilen beliebig ist. Entschuldige das Quoten. Kannst du mir helfen bei meinem Problem? Rolling Eyes
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 15.10.2015, 11:35     Titel:
  Antworten mit Zitat      
fang doch erstmal an und stell dann konkrete fragen wenn probleme auftauchen mit entsprechendem code. anstatt area könntest du auch patch verwenden. das kannst du dann sowohl für das 2d als auch das 3d bild benutzen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
sKelet0n
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2015, 18:22     Titel:
  Antworten mit Zitat      
Hi

Code:
>> patch(A(:,1),A(:,2),A(:,1),A(:,3))
>> area(A(:,1),A(:,2),A(:,1),A(:,3))
Error using xychk (line 15)
Too many input arguments.

Error in area (line 38)
    [msg,x,y] = xychk(args{1:nargs},'plot');
 
>> plot(A(:,1),A(:,2),A(:,1),A(:,3))



Also bei area bekomm ich jetzt auch einen Error. Und die Visualisierungen von plot und patch sehen auch anders aus.

Konkrete Frage:
Was muss ich machen, um die Abmessungen der Abschnitte in korrekte Koordinaten umzuwandeln, um diese dann zu visualisieren?
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 - 2025 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.