|
|
Matrixelemente (Nullen) verschieben bzw. vertauschen |
|
Dr.Dreh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 13:14
Titel: Matrixelemente (Nullen) verschieben bzw. vertauschen
|
 |
Hallo,
ich habe ein Problem an dem ich jetzt eine ganze Weile hänge und dachte mir, ich frag hier mal um Rat. Und zwar möchte ich Nullen in einer Matrix durch das darauffolgende Element ersetzen bzw. die Nullen ans Ende verschieben. Was meine ich damit:
Beispiel: Ich habe in eine Matrix A:
Was kann ich nun tun, um die Nullen ans Ende zu verschieben bzw. die Einsen "nach oben" zu verschieben um dieses Ergebnis zu bekommen:
Zu berücksichtigen sei zudem noch, dass ich in meiner "realen" Matrix anstatt der Einsen verschiedene "Zahlen" vorliegen habe, wodurch eine einfache Sortierung nicht möglich ist (z.B. der Größe nach), denn dadurch würde sich ja die feste Reihenfolge der Zahlen ändern.
Es müsste daher sicherlich über den Index (logical der Matrix liegt vor) gegangen werden...
Vielen dank schonmal für eure Vorschläge und Ideen!
Gruß Daniel
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 13:17
Titel:
|
 |
Hallo,
Zitat: |
Zu berücksichtigen sei zudem noch, dass ich in meiner "realen" Matrix anstatt der Einsen verschiedene "Zahlen" vorliegen habe, wodurch eine einfache Sortierung nicht möglich ist (z.B. der Größe nach), denn dadurch würde sich ja die feste Reihenfolge der Zahlen ändern. |
Dann bitte ein Beispiel mit verschiedenen Zahlen. Aus diesem Beispiel geht für mich jedenfalls nicht hervor, wie der Ablauf erfolgen soll und insbesondere inwiefern es nicht auf ein Sortieren hinausläuft.
Grüße,
Harald
|
|
|
Dr.Dreh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 13:25
Titel:
|
 |
Meine reale Matrix sieht wie folgt aus:
Die Einträge sollen später in Strings umgewandelt werden und in einem plot als Datenpunktbezeichung dienen. Zu diesen Einträgen existieren X (Energie) und Y (Intensität) Werte, wodurch die Reihenfolge der Elemente der Matrix "Reflexindizes "vorgegeben ist (diese kann ich ja einfach der Größe nach sortieren).
In diesem speziellen Fall möchte ich nun die Einträge "321" in den Spalten 16 - 22 um eins nach vorne Rücken. Ich hoffe das ist verständlich.
Gruß
Daniel
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 13:35
Titel:
|
 |
Hallo,
in diesem Beispiel:
Grüße,
Harald
|
|
|
Dr.Dreh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 13:49
Titel:
|
 |
Super, das funktioniert prima. Vielen Dank!
Allerdings würde dieses Vorgehen für den die folgende Matrix:
nicht mehr funktionieren. Eine Sortierung ist hier ja nicht ohne weiteres möglich, da sonst die vorgegebene Reihenfolge nicht mehr eingehalten werden würde. Hast du da auch noch eine Idee?
Gruß,
Daniel
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 14:18
Titel:
|
 |
Hallo,
was soll denn in diesem Fall das Ergebnis sein?
Grüße,
Harald
|
|
|
Dr.Dreh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 14:25
Titel:
|
 |
Das sollte rauskommen:
Die Einträge die "hinter" einer Null stehen sollen aufrücken und die Nullen ans Ende rücken. Bei Anwendung von
würde, wenn ich mich nicht täusche, die feste Reihenfolge ja verloren gehen.
Gruß
Daniel
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 14:34
Titel:
|
 |
Hallo,
mittlerweile glaube ich verstanden zu haben, was du vertauschen willst und welche Reihenfolge du andererseits fest lassen möchtest.
Was sollen eigentlich die führenden Nullen?
Grüße,
Harald
|
|
|
Dr.Dreh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2014, 14:46
Titel:
|
 |
Harald, vielen Dank! Ich glaube genau das hab ich benötigt. Ich werde es mal für verschiedene Fälle durchprobieren.
Die Nullen ergeben sich aus dem Index einer anderen Matrix, die Peakpositionen in einem Spektrum beschreiben. Diese Peakpositionen können von Spektrum zu Spektrum verschieden sein, sprich mal fehlt ein Peak, mal ein anderer. (alle Spektren werden in meinem Programm jedoch simultan betrachtet) Und dementsprechend müssen eben auch die Peakbezeichnungen (Reflexindizes) angepasst werden. Ist etwas kompliziert zu erklären.
Gruß
Daniel
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|