|
Thorsten563 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.03.2013, 21:54
Titel: strfind fehler
|
 |
hallo gomatlab,
ich probiere gerade ein COde was ich hier im FOrum gefunden habe. Nur leider bekomme ich eine Fehlermeldung.
Im Forum Vorschlag war der Input statisch, jedoch wollte ich mit einem zufällig generierten array ausprobieren rand(1000000,1).
Folgende Fehlermeldung wird ausgegeben
Viele Grüße,,
Thorsten
|
|
|
|
|
markuman |

Forum-Guru
|
 |
Beiträge: 320
|
 |
|
 |
Anmeldedatum: 14.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
|
 |
|
|
 |
|
Verfasst am: 27.03.2013, 22:53
Titel:
|
 |
Keine Ahnung auf welchen Code-Snip aus dem Forum du dich beziehst. Ich kann damit nicht so viel anfangen. Es wäre besser wenn du deinen gesamten Code posten würdest.
_________________
DIY OR DIE
entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.03.2013, 22:53
Titel:
|
 |
Hallo,
der Code geht davon aus, dass A ein Zeilenvektor ist.
Wenn A ein Spaltenvektor ist, muss entweder A transponiert werden oder ; als Trennzeichen beim Erstellen der Vektoren verwendet werden.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.03.2013, 00:21
Titel: Re: strfind fehler
|
 |
Hallo Thorsten,
Matlab's Fehlermeldung habe eine sehr hohe Qualität. Hier bekommst Du:
Das weist schonmal stark darauf hin, dass das Problem nicht mit STRFIND zu tun hat, sondern mit dem Zusammenfügen der Arrays.
Mit diesem Wissen kann man nun den Befehl in einzelne Teile auseinandernehmen:
Wenn man dies laufen lässt, scheitert es schon bei der Zuweisung von A. Wie bereits erklärt, kann man nicht Arrays der Größen [1x1], [999999 x 1] und [1x1] horizontal zusammenfügen, da dies keine rechteckige Matrix mehr geben kann.
So kann man also Fehlern auf den Grund gehen:
1. Zeile finden, die scheitert,
2. In Einzel-Teile zerlegen so weit es geht,
3. Nochmal versuchen, welcher Teil den Fehler erzeugt.
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.03.2013, 19:28
Titel:
|
 |
wie könnte man den code erweitern, um damit das matching von dem pattern flexibel zu halten..
in unserem fall sind es genau 5...
jedoch möchte ich die angabe als mindestens sehen
ich möchte die markierung solange halten bis sich die differenz ändert
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.03.2013, 20:06
Titel:
|
 |
Hallo,
Dann brauchst Du einen Run-Length-Encoder. Hier findest Du einiges im FileExchange. Ich werde nächste Woche ein schnelle C-Mex-Funktion dort veröffentlichen.
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.03.2013, 21:57
Titel:
|
 |
Danke, aber das hört sich kompliziert an.. Ich würde gerne einfaches kleines Code schreiben, dass das abfängt. Muss jetzt nicht 100 prozent abfangen können.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 01.04.2013, 12:47
Titel:
|
 |
|
 |
|
Hallo,
Ob sich das "kompliziert anhört" oder nicht, spielt keine so große Rolle, oder? Du brauchst ein Programm, das so kompliziert ist, wie es der Komplexitätsgrad Deines Problems erfodert. Eine Lösung, die nicht 100% der Fälle abfängt, ist im dem Maße wertlos, wie Du nicht genau definieren kannst, auf welche Prozente Du verzichten möchtest.
Im FileExchange suchen und ein vorhandenes Tool herunterzuladen ist ebenfalls nicht kompliziert. Vor allem hätte dies den Vorteil, dass Du das Problem in Eigeninitiative löst, statt die Leute im Forum die Arbeit erledigen zu lassen. Du schreibst zwar "ich möchte gerne einen kleinen Code schreiben", aber irgendwie hört sich die Mitteilung so an, als wollest Du, dass wir das für Dich schreiben.
Also hier noch mal ein Run-Length-Encoder:
Wenn Du nun alle Lauf-Längen >= 5 haben möchtest, bekommst Du das mit:
Und die dazugehörigen Anfangs-Indices sind "index(match)".
Viel Erfolg beim Erweitern des Codes, bis er Dein Problem genau löst!
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.04.2013, 15:12
Titel:
|
 |
Danke schön, dass ist doch schon mal der anfang,
jetzt würde ich eigentlich zunächst einmal die mindestlänge von fünf suchen, sobald ich sowas finde, würde ich in einer schleife die nächsten punkte berechnen, also jedesmal mit dem vorherigen abziehen, sobald es gleich ist, heisst es gehört auch zum cluster. Bei veränderung könnte ich sagen, dass die marlkierung aufhört...
das wäre doch eine mögliche lösung oder?
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2013, 13:28
Titel:
|
 |
rein von der theorie her, was passiert, wenn ich 11 werte hintereinander gereiht bekomme...
beispielsweise:
1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 1
bekomme ich dann folgendes in mein T2
0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0
oder
0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0
|
|
|
Andy386 |

Forum-Guru
|
 |
Beiträge: 485
|
 |
|
 |
Anmeldedatum: 24.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.1/8
|
 |
|
|
 |
|
Verfasst am: 08.04.2013, 16:25
Titel:
|
 |
?hast du kein Matlab?
probiers aus! tipp: octave ist halbwegs kompatibel mit vielen Matlabbefehlen und kostenlos.
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.04.2013, 16:43
Titel:
|
 |
Hallo,
Zitat: |
jetzt würde ich eigentlich zunächst einmal die mindestlänge von fünf suchen, sobald ich sowas finde, würde ich in einer schleife die nächsten punkte berechnen, also jedesmal mit dem vorherigen abziehen, sobald es gleich ist, heisst es gehört auch zum cluster. Bei veränderung könnte ich sagen, dass die marlkierung aufhört... |
Ich kann Dir nicht folgen. Mein Code erzeugt den Logical Vektor "match", der für alle Blöcke gleicher Werte TRUE ist, wenn sie >= 5 Elemente haben. Der Vektor "runlength" enthält doie Länger der Blocke. Dann ist "cumsum([1 + runlength])" der Startwert der einzelnen Blöcke. Wonach willst Du dann in den daten noch suchen? Es ist doch alles gewünschte schon vorhanden?
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.04.2013, 21:53
Titel:
|
 |
Ich versuche die geunden stelle mit dem code zun#ächst einmal farblich darzustellen bei dem plotten
diesen lösungsansatz habe ich noch nicht verwendet, muss es noch verstehen
|
|
|
|
|
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.
|
|