|
|
Zahlensequenz in anderer,großer matrix finden |
|
n.force |

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 02.03.12
|
 |
|
 |
Wohnort: nähe Magdeburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.07.2015, 19:27
Titel: Zahlensequenz in anderer,großer matrix finden
|
 |
Hallo liebe Helfer,
Ich möchte überprüfen, ob eine zahlenfolge unter beachtung der reihenfolge in einer gegeben,großen matrix enthalten ist.
Also zum beispiel:
Test sollte jetzt also 1 sein, da a in M ist.
Wie kann ich das denn bewerkstelligen?
Ich habe Leider keinen ansatz; auch nicht mit der hilfe von google.
Vielen dank für eure hilfe.
Genießt das wetter
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.07.2015, 20:06
Titel:
|
 |
Hallo,
soll die Sequenz von links nach rechts auftauchen, oder geht auch von oben nach unten? Kann sie zeilenübergreifend sein?
Eine Strategie könnte sein, per logischer Indizierung die Stellen zu ermitteln, an denen die erste Zahl des Musters steht, und dann mit einer for-Schleife schauen, ob die weiteren Stellen passen. Etwas wirklich elegantes fällt mir da nicht ein.
Grüße,
Harald
|
|
|
n.force |
Themenstarter

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 02.03.12
|
 |
|
 |
Wohnort: nähe Magdeburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.07.2015, 20:16
Titel:
|
 |
Hallo Harald,
Die sequenz kann nur nebeneinander stehen. Auch die reihenfolge muss genauso sein, wie in dem vektor a.
For schleifen würde ich aus perfomancegründen gern vermeiden.
Ich hatte es auch schon mit findstr() versucht, aber das klappt auch nicht wirklich.
Ich kann mir einfach nicht vorstellen, dass es da nichts elegantes gibt
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.07.2015, 22:04
Titel:
|
 |
Hallo,
Zitat: |
For schleifen würde ich aus perfomancegründen gern vermeiden. |
Hast du's denn mal versucht? Wie groß sind die beteiligten Matrizen in der realen Anwendung?
Zitat: |
Ich hatte es auch schon mit findstr() versucht, aber das klappt auch nicht wirklich. |
Ist ja auch für Strings gedacht. Und: es ist immer hilfreich, wenn du schreibst, was du genau versucht hat.
Zitat: |
Ich kann mir einfach nicht vorstellen, dass es da nichts elegantes gibt |
Och, es ist gut möglich, dass es etwas gibt. Mir ist jedoch nichts in der Hinsicht bekannt.
Grüße,
Harald
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 04.07.2015, 22:21
Titel:
|
 |
ich würde
strfind
verwenden und nicht
findstr
aber sonst kann ich mich da nur harald anschließen. ohne das beispiel was du versuchst hast können wir keine verbesserungsvorschläge machen. und forschleifen sind nicht generell langsam. kommt immer auf das problem an.
_________________
richtig Fragen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 05.07.2015, 15:35
Titel: Re: Zahlensequenz in anderer,großer matrix finden
|
 |
|
 |
|
Hallo n.force,
Es ist zwar ineffizient zu raten, aber es ist heute so heiß, also was soll's:
Man könnte M auch in einen Vector "reshapen" und dann ohne Schleife darin suchen. Das benötigt aber wieder mehr Speicher. Ob das schneller ist hängt davon ab, ob dieser zusätzliche Speicher noch in den Cache des Prozessors passt.
Die Größen von a und M spielen auch eine Rolle dabei, ob diese Schleife effizienter ist als ein vollständig vektorisierter Code. Auf jeden Fall ist die Schleife schnell geschrieben. Und was nutzt es 0.1 Sekunden Rechenzeit zu gewinnen und dafür 3 Minuten Programmierzeit zu investieren?
Generell kann ich Harald und Winkow nur recht geben: Bitte poste den Code, den Du versucht hast. Erkläre, wie groß die Arrays üblicherweise oder maximal sind. Die Erklärung, dass Du FOR-Schleifen aus "Performance-Gründen" vermeiden möchtest, ist nicht haltbar. Seit über 10 Jahren verbssert Matlab's JIT-Acceleration die Effizienz von FOR-Schleifen z.T. massiv. Bevor man sich also Gedanken über die Geschwindigkeit von Schleifen macht, muss man es unbedingt ausprobieren. Von vornherein Schleifen abzulehnen ist eine "Pre-mature optimization".
Gruß, Jan
|
|
|
n.force |
Themenstarter

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 02.03.12
|
 |
|
 |
Wohnort: nähe Magdeburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.07.2015, 11:41
Titel:
|
 |
Viele Dank euch allen.
Funktioniert sehr gut.
Ich habe wohl noch einigen Nachholebedarf in MATLAB
|
|
|
|
|
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.
|
|