|
Matlab.lab |
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 07.09.2009, 08:55
Titel: Matrixinhalt abfragen
|
|
Hallo,
ich hätte folgendes Problem: Ich habe ein Rechtecksignal aus einer Matrix generiert, die folglich nur 0er und 1er enthält.
Jetzt brauche ich eine Abfrage, die z.B. schaut, wieviele 1er aufeinander folgen, und für den Fall, dass dies z.B. nur 5 oder weniger sind, alle diese durch 0 ersetzt. Andere 1er Reihen sollen so bestehen bleiben..
Bsp aus
[... 0 0 1 1 1 1 1 0 0 ...]
[... 0 0 0 0 0 0 0 0 0 ...]
Wie kann ich das machen? Danke für die Hilfe schonmal.
Achja.. Die "Matrix" ist vom Typ Double, also eigentlich nur ein Array von Werten. Weiß nicht genau, ob das aber was ändert am Problem.. :?:
|
|
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.09.2009, 11:50
Titel:
|
|
Hallo,
eine "direkte" Möglichkeit ohne es Basetelei kenne ich nicht. Aber generell: mit
kann man sich die Punkte suchen, an denen der Wechsel 0->1 stattfindet. Diese würde ich in einer Schleife durchlaufen und dann ab dem Punkt den Punkt suchen, an dem der Wechsel 1->0 stattfindet. Ist der näher als 5 Punkte, dann die Punkte löschen ...
Titus
|
|
|
Matlab.lab |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 07.09.2009, 12:46
Titel:
|
|
Über den diff-Befehl krieg ich ja aber nur wieder neue Arrays raus, die von der Form genauso aussehen wie mein ursprüngliches Array - da könnte ich doch direkt mich mit der Schleife an dieses machen, nur wie das geht, das ist ja das Problem..
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 07.09.2009, 13:17
Titel:
|
|
Ich möchte Simulink als Alternative ins Spiel bringen. Das hört sich ja nach Signalverarbeitung und/oder Logik an. Für diese eine Aufgabe ist es vielleicht nicht relevant, aber wenn die gesamte Applikation noch in den Anfängen ist geht es in Simulink wohl flotter zu entwerfen.
Andreas
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.09.2009, 18:50
Titel:
|
|
Hallo,
leider kenne ich auch keine "einfache" Variante, aber vielleicht hilft dir ja der folgende Code.
Eventuell kann man noch das ein oder andere vereinfachen (Vielleicht hat noch jemand eine Idee/Hinweis?). Bei meinen Beispieldaten hat es soweit problemlos geklappt und vielleicht hilft es dir weiter.
ciao
|
|
|
Matlab.lab |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 08.09.2009, 16:24
Titel:
|
|
ja tatsächlich, der letzte Code funktioniert!!
Genau wie ichs mir vorgestellt hatte - außer der Lösungsweg, der ist ein bisschen komplizierter ^^
Besten Dank Euch allen!!!
|
|
|
|
|
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 - 2024
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.
|
|