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

Plotten von mehreren Punkten

 

cgf_91
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 09.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2016, 09:29     Titel: Plotten von mehreren Punkten
  Antworten mit Zitat      
ich habe eine Matrix und möchte von der ersten Zeile und zweiten Zeile einzelne Punkte plotten.

also zB: A=(2 4 7 3
0 1 5 8
9 6 3 2)
und dann möchte ich von der ersten Zeile die Punkte 4 und 7 und von der zweiten Zeile 5 und 8

kann mir da jemand weiterhelfen?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.05.2016, 09:50     Titel:
  Antworten mit Zitat      
Hallo,

wenn die x-Koordinaten aus der ersten und die y-Koordinaten aus der zweiten Zeile sein sollen:
Code:
plot(A(1, 2:3), A(2, 3:4), 'o')


Mir erschließt sich allerdings nicht die Systematik hinter der Auswahl.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 13.05.2016, 09:59     Titel:
  Antworten mit Zitat      
Schau dir bitte mal das Kapitel über Matrixindexierung in der Matlabhilfe an.
http://de.mathworks.com/help/matlab/math/matrix-indexing.html

Grundsätzlich:
Code:
A(zeile, spalte)  => Einzelwert
A(:,Spalte) => gesamteSpalte
A(Zeile,:) => gesamteZeile


Für plot gibt es auch eine ausführliche Hilfe, einfach auf plot unten im code klicken, oder in deinem Matlab Codewort markieren und F1 drücken.
Code:



Code:
A =[2 4 7 3;0 1 5 8 ;9 6 3 2]
% jedes zweite Wertepaar A(Zeile1, Zeile2) plotten
plot(A(1,1:2:end),A(2,1:2:end),'*r')

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
cgf_91
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 09.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2016, 10:08     Titel:
  Antworten mit Zitat      
vielen Dank für die Antwort. Es hat leider nur teilweise weitergeholfen.

für die Aufgabe habe ich eine sehr viel grössere Matrix A (40*20'000) und ich muss aus der ersten und zweiten Zeile einzelne Punkte herausnehmen und diese dann platten

ich wollte dies dann mit folgendem Code erreichen, aber es funktioniert nicht so ganz.

[code]figure;
plot(A(1,44:307:4903:15890),'o')
hold on
plot(A(2,53:4789:298:18976),'o')[/code]

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.05.2016, 10:34     Titel:
  Antworten mit Zitat      
Hallo,

was möchtest du mit dem Code denn erreichen?

Die Doppelpunktsyntax wird in der Form
a:dx:b von a in Schritten von dx nach b
a:b von a in Schritten von 1 nach b
verwendet.

Was du mit 4 durch : getrennten Werten machen möchtest, erschließt sich mir nicht.

Bitte immer dazu schreiben, was genau "es funktioniert nicht so ganz" bedeutet. Das lässt sich meist nur erahnen, und oft nicht mal das.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
cgf_91
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 09.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2016, 10:49     Titel:
  Antworten mit Zitat      
Also ich habe 40 verschiedene Knochen (Zeilen) und die dazugehörigen Substanzen (20'000, Spalten). Ich möchte jetzt von Knochen 1 und 2 spezifische Substanzen in einem Plot darstellen um allfällige Zusammenhänge beobachten zu können.

Das mit der Doppelpunktsyntax verstehe ich schon. Aber ich brauche aus Zeile 1 und 2 mehrere Substanzen, die keine Regelmässigkeit (gleicher Abstand zueinander) aufweisen.

Also vielleicht nochmals genauer gesagt, im Plot möchte ich folgendes sehen: Knochen 1 (Zeile 1) die Substanzen (Spalte): 44,307,4903,15890 und vom Knochen 2 (Zeile 2) die Substanzen (Spalte): 53,4789,298,18976

oder kann ich das nur einzeln schreiben:

[code]figure;
plot(A(1,44),'o');
hold on
plot(A(1,307),'o');
hold on
plot(A(1,4903),'o');
hold on
...
plot(A(2,18976),'o');[/code]


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.05.2016, 10:57     Titel:
  Antworten mit Zitat      
Hallo,

dann ginge das
Code:
figure;
plot(A(1,[44,307,4903,15890]),'o')
hold on
plot(A(2,[53,4789,298,18976]),'o')

Ist das aber das, was du möchtest? Du gibst in der Syntax ja nur y-Werte an, damit werden als x-Werte 1:4 verwendet. Ist das wirklich gewünscht?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
cgf_91
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 09.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2016, 20:26     Titel:
  Antworten mit Zitat      
vielen Dank! ich glaube nun verstehe auch ich, was ich wirklich brauche :)

tatsächlich ist das noch ein Problem bzgl x-Werte...ich habe vermutlich selber die Aufgabe bis anhin noch nicht ganz verstanden.
also ich möchte folgendes: folgende Matrix M als Bsp:

2 4 6 12 45 33
3 5 7 35 75 26
1 9 8 56 31 46

nun möchte ich einzelne Werte aus Zeile 1 und 2 gegeneinander plotten. Also das heisst als Achsen Zeile 1 und Zeile 2. Für x-Werte nehme ich Zahlen aus Zeile 1 also hier: 33, 4, 12 und für die y-Werte nehme ich Zahlen aus Zeile 2 also hier: 26,5,35 (die Spalten bleiben gleich für Werte aus Zeile 1 und 2)

gibt es da einen einfachen Befehl? Ich habe es ziemlich kompliziert geschrieben (vor allem wenn das in der realen Aufgabe eine viel grössere Matrix ist und viel mehr Daten für den Plot ausgewertet werden müssen)

A=M[1,6]
B=M[2,6]
C=M[1,2]
D=M[2,2]
E=M[1,4]
F=M[2,4]
figure;
plot([A,C,E],[B,D,F],'o');
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.05.2016, 21:19     Titel:
  Antworten mit Zitat      
Hallo,

ja, das geht einfacher. Du brauchst nur die Beiträge von 13.05.2016, 10:50 (Plotten erster Zeile gegen zweite Zeile) und 13.05.2016, 11:57 (Auswahl der Elemente über [ ] ) zu kombinieren.

Grüße,
Harald
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.