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

Koordinaten "schlangenförmig" ordnen

 

Backtail

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.03.2013, 19:40     Titel: Koordinaten "schlangenförmig" ordnen
  Antworten mit Zitat      
Hey,

Ich möchte ein Sortier-Algorithmus finden, mit dem ich x-y koordinaten schlangen förmig ordnen kann.
Ich habe ein unregelmäßiges Messgitter. Da man das ganze Messequipment nicht andauernd hin und herschleppen möchte, sollte immer der nächstgelegene messpunkt gewält werden und man läuft eine "schlange" ab

ich denke ein bild beschreibt mein Problem recht einfach:

über sortrows sind die koordinaten so sortiert, dass die messung so erfolgen würde wie die roten pfeile es darstellen,
dass heißt nach jeder reihe, müsste ich einen "langen" weg auf mich nehmen
ich würde die koordinaten gerne so sortieren wie die gründe schlange es darstellt

wäre das messgitter äquidistant, so könnte man sicherlicher nach jedem wechsel der y koordinate die x werte ab bzw. aufsteigend sortieren
da das gitter jedoch "scattered" ist, weiß ich nicht so recht wie das problem zulösen ist.

wäre über jeden tipp dankbar, auch funktionen aus der file exchange würde ich benutzen. es ist für mich nicht zwingend die sortierung selbst zu programmieren

schönenabend noch
backtail


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.03.2013, 00:17     Titel:
  Antworten mit Zitat      
Hallo,

du kannst die Blöcke zu den geraden Zeilen (in einer for-Schleife) z.B. mit flipud "auf den Kopf" stellen.
Beinhaltet jede Zeile gleich viele Punkte? Falls ja, ist es relativ einfach.
Falls nein, musst du zunächst z.B. mit logischer Indizierung Anfang und Ende der "Zeilenblöcke" herausfinden.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2013, 20:17     Titel:
  Antworten mit Zitat      
hey harald

was meinst du mit "geraden" zeilen?
die zeilen beeinhalten nicht gleichviele punkte, es kann sogar der fall eintreten, dass willkürlich irgendwo ein punkt gesetzt wird

und was bedeutet logische indizierung?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.03.2013, 20:27     Titel:
  Antworten mit Zitat      
Hallo,

du numerierst die Zeilen von unten nach oben (oder umgekehrt) durch, und die 2., 4., 6. etc. Zeilen sind dann die geraden Zeilen.

Logische Indizierung (logical indexing) wird z.B. hier erklärt:
http://blogs.mathworks.com/steve/2008/01/28/logical-indexing/

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2013, 20:40     Titel:
  Antworten mit Zitat      
danke erstmal für deine beiden zügigen und hilfreichen antworten

aha und wie mach ich matlab verständlich was eine zeile ist?

wäre dein ansatz der logischen indizierung soetwas wie

alle y koordinaten zwischen 0,5<y<1,5 ergeben quasi eine zeile
und als nächsten schritt 1,5<y<2,5 wäre die zweite zeile die ich dann flippen würde?
das könnte funktionieren, wobei dann auch je nach messgitterdichte die grenzen irgenwdie automatisch bestimmt werden müssten
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.03.2013, 22:45     Titel:
  Antworten mit Zitat      
Hallo,

die Grenzen kannst du z.B. schauen, indem du bei sortierten y-Werten schaust, wann der Abstand zwischen aufeinanderfolgenden y-Werten größer als ein bestimmter Schwellwert ist.

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

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 19.03.2013, 23:07     Titel:
  Antworten mit Zitat      
Hi,

backtail hat Folgendes geschrieben:

aha und wie mach ich matlab verständlich was eine zeile ist?


Code:
A = rand(10, 3);
A(2, :);   % Zeile 2


http://www.mathworks.de/de/help/matlab/matrices-and-arrays.html

Grüße,
Seban
Private Nachricht senden Benutzer-Profile anzeigen
 
backtail

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.03.2013, 13:39     Titel:
  Antworten mit Zitat      
hey

@seban, ja das is mir schon klar, hat aber nichts mit meinem problem zu tun. Es geht um die zeilen der messpunkte im Bild und nicht um zeilen einer matrix

Zitat:
Hallo,

die Grenzen kannst du z.B. schauen, indem du bei sortierten y-Werten schaust, wann der Abstand zwischen aufeinanderfolgenden y-Werten größer als ein bestimmter Schwellwert ist.

Grüße,
Harald


macht sinn, aber auch dieser bestimmte Schwellwert muss ja aus dem Messgitter heraus ermittelt werden.
Um diesen Wert zubestimmen muss ich ja gedanklich selbst das messgitter in messreihen aufteilen und dann einen schwellwert festlegen. aber auch dies soll automatisch geschehen


Grüße,
Backtail
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.03.2013, 15:05     Titel:
  Antworten mit Zitat      
Hallo,

du könntest z.B. den durchschnittlichen Unterschied (mean oder vielleicht auch median) der y-Koordinaten aufeinanderfolgender Punkte berechnen (die Punkte sollten dazu nach y-Wert sortiert sein) und dann sagen, dass eine neue Zeile dann beginnt, wenn der Abstand zweier Punkte z.B. mehr als 5 Mal so groß ist wie dieser durchschnittliche Abstand.

Bei deinem Beispieldatensatz sollte das gut gehen. Ich würde das mal anhand einiger Datensätze ausprobieren.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2013, 19:42     Titel:
  Antworten mit Zitat      
Hey Harald,

vielen Dank, hast ne menge an Grübelei für mich übernommen. Ich denke auch, dass es auf diese weiße für die meisten datensätze halbwegs vernünftig funktionieren müsste. die umsetzung dürfte auch nicht alzu schwierig sein. Werde mich nächste Woche damit auseinandersetzen und gegebenfalls nochmal hier reinschreiben

schönes WE wünsch ich dir

grüße
backtail
 
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.