|
|
Bestimmte Anzahl Zahlen/Buchstaben finden |
|
Dexter |

Forum-Fortgeschrittener
|
 |
Beiträge: 68
|
 |
|
 |
Anmeldedatum: 22.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2014, 00:07
Titel: Bestimmte Anzahl Zahlen/Buchstaben finden
|
 |
Hi Leute,
mal wieder sitze ich vor einem Problem, dass ich mit meinen beschränkten Matlab Kenntnissen nicht lösen kann.
Ich habe einen Vektor als Cell (eigentlich mehrere, aber der Einfachheit halber erstmal nur eine als Bsp.) in dem sowas steht:
Nun brauche ich eine Idee, wie ich die Zeilenindizes:
bekomme.
Vielleicht irgendwie nach Werten mit exakt vier Ziffern und mind. einem und maximal zwei Buchstaben dahinter suchen. Das würde alles andere ausschließen. Aber sowas konnte ich leider nicht finden.
Vielleicht hat hier ja jemand eine Idee?!
Viele Grüße,
Dexter
|
|
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.09.2014, 09:05
Titel:
|
 |
Hallo,
es wäre nett, wenn du den Code auch so postest, dass man ihn direkt benutzen kann und die gewünschten cells erhält. Wie auch immer, mit ismember() geht sowas:
Aber Achtung, die Reihenfolge ist nur zufällig richtig, da die Werte in p in der gleichen Reihenfolge auch in A auftauchen. Falls die Reihenfolge wichtig ist:
Viele Grüße,
Nras.
|
|
|
Dexter |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 68
|
 |
|
 |
Anmeldedatum: 22.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2014, 09:28
Titel:
|
 |
Okay, danke dafür. Allerdings geht das etwas in die falsche Richtung, habe mich wohl zu undeutlich ausgedrückt.
Die Werte
möchte ich vorher nicht etrxa definieren. Es beschränkt sich nämlich nicht nur auf diese drei. Es können in einer Spalte bis zu 400 verschiedene Kombinationen dieser Werte auftreten. Deswegen suche ich einen Weg, der mir den Index dieser "Art" Ziffern-Buchstaben-Kombination zurückgibt.
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.09.2014, 10:16
Titel:
|
 |
Hallo,
das klingt nach regular expressions. Da bin ich kein Profi, aber dieser Code liefert die richtigen Zeilen. Ich kann aber nicht garantieren, dass nicht doch falsche Zeilen gefunden werden oder richtige Zeilen ausgelassen werden. Es sollte aber eigentlichin hinhauen... Es wird nach 4 Ziffern gefolgt von einem Großbuchstaben gesucht und sichergestellt, dass der Treffer an der ersten Stelle des Stringsgefunden wird.
Du kannst ja mal prüfen, ob das hinhaut.
Viele Grüße,
Nras
|
|
|
Dexter |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 68
|
 |
|
 |
Anmeldedatum: 22.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2014, 11:13
Titel:
|
 |
|
 |
|
Das funktioniert bei meinen Tests schonmal Super. Nur warum findet es auch die Zeilen in denen zwei Buchstaben hinten anhängen? Wenn ich den Code richtig verstehe, wird nach vier Zahlen in einem Zahlenbereich von 1-9 und nach einem Buchstaben im Bereich A-Z gesucht, oder?
Da ich mir hinterher mit dem Index die entsprechenden Zahlenwerte aus dem Ursprungsvektor holen will, wäre es toll die Zeilen in denen die vorher gesuchten Werte nicht vorkommen mit Null zu füllen oder leer zu lassen. Ist das direkt in einem Schritt möglich?
edit: Jetzt habe ich ein wenig umherprobiert und dein Konstrukt wie folgt erweitert:
Dadurch erhalte ich zusätzlich alle Einträge der Form: 'R08L/P2000N'. Ich habe allerdings keinen Schimmer warum.
Außerdem ist mir noch eine bessere Variante eingefallen, wie ich die Daten weiter verwenden würde.
Toll wäre es, wenn ich die einzelnen Typen (bleiben wir hier mal bei dem was ich jetzt mit dem Code finden kann) so als Variable bekomme, das mir die gefundenen Werte an der entsprechende Stelle in einem neuen Vektor ausgegeben werden. Ich also zwei extra Vektoren erhalte, wo im ersten nur die Werte aus der if-Abfrage und im zweiten nur die Werte der elseif-Abfrage stehen. Diese Werte aber entsprechend ihrem Index zu den anderen Spalten passen.
Hmm...schwer zu erklären...
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.09.2014, 12:55
Titel:
|
 |
Hallo,
wie gesagt, ich kenne mich nicht wirklich mit regexp aus, aber ich versuche es mal. Besser wär es, wenn jemand das machen würde, der öfter damit arbeitet, vielleicht erzähle ich Quatsch.
Zitat: |
Das funktioniert bei meinen Tests schonmal Super. Nur warum findet es auch die Zeilen in denen zwei Buchstaben hinten anhängen? |
Es sucht nur nach mindestens einem Großbuchstaben hinter den Ziffern.
Zitat: |
Dadurch erhalte ich zusätzlich alle Einträge der Form: 'R08L/P2000N'. Ich habe allerdings keinen Schimmer warum. |
Naja, da steht am Ende 2000N, das entspricht dem Ausdruck 4 Ziffern zwischen 0 und 9 gefolgt von einem Großbuchstaben. Gefunden wird das aber nicht am Anfang, sondern später, am Ende.
Wirklich schwer zu erklären, was du da am Ende möchtest. Falls du soetwas willst wie die übrigen indices, die nicht in idx stehen:
.
Viele Grüße,
Nras.
|
|
|
|
|
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.
|
|