|
|
|
Daten aus einem Vektor in einer Matrix finden |
|
| eRo |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 06.03.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2016a
|
 |
|
|
 |
|
Verfasst am: 07.04.2017, 10:28
Titel: Daten aus einem Vektor in einer Matrix finden
|
 |
Hallo Leute,
Ich habe derzeit folgendes Problem:
Ich habe 12.000 Daten von 15 Sensoren. Diese liegen in eine Matrix (12000,15).
Jetzte möchte ich, ohne Verwendung eine for-Schleife, die Position bestimmen, wo das Integral unter der Kurve größer 0,5 des gesamtintegrals ist.
Also:
hab ich mir gedacht, geht aber nicht so wie es soll. Mit eine for-Schleife läuft das schon, wegen effektivität muss es aber ohne Schleife gehen. Ismemeber geht auch nicht, da die Bedingung an unterschidlichen Indizes in a erfüllt ist.
Ich hoffe das Problem ist gut umschrieben.
hf & gl
eRo
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.04.2017, 12:03
Titel:
|
 |
Hallo,
mit dem momentanen Code ist data genau ein Wert, der rechts unten.
Falls das nicht das Problem ist, bitte genauer beschreiben, was "geht aber nicht so wie es soll" hier bedeutet.
Grüße,
Harald
|
|
|
|
| eRo |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 06.03.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2016a
|
 |
|
|
 |
|
Verfasst am: 07.04.2017, 12:41
Titel:
|
 |
Moin Harald,
Berechtigter Einwand ^^ war mein Fehler
data ist ne Matrix 12000x 15 (das sollten die Zahlen angeben).
Also die Idee ist:
ich habe die 15 Sensoren mit je 12000 Messpunkten. Die Sensoren bekommen irgendwann ein Signal. der Zeitpunkt des Signals variiert leicht. Jetzt habe ich vorab das Grundrauschen genullt. Jetzt bleibt nur noch der eigentliche Peak über. Jetzt berechne ich das Integral
für jede Spalte (das ist meine Vergleichsgröße). Durch
bilde ich die kumulative Summe und will nun den Zeitpunkt (Index) finden, bei dem die kumulative Summe a größer als 0.5*b wird.
| Zitat: |
| [row col] = find(a>b/2,1,'first') |
war die Idee. Ich versuche also spaltenweise einen Vergleich der kumulativen mit der gesamten Summe durchzuführen. Das ganze ohne Schleife.
Mit Schleife sieht das so aus:
und funktioniert genau so wie es soll.
Nochmal sorry
|
|
|
|
| eRo |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 06.03.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2016a
|
 |
|
|
 |
|
Verfasst am: 07.04.2017, 15:44
Titel:
|
 |
kleines Update:
bei variable b muss das
hinten weg
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 07.04.2017, 20:14
Titel:
|
 |
Hallo,
ich sehe auf Anhieb keine Möglichkeiten, die for-Schleife zu vermeiden.
Solltest du in der tatsächlichen Anwendung nicht deutlich mehr als 15 Spalten haben, dann würde ich durch die for-Schleife keinen signifikanten Performance-Unterschied erwarten.
Grüße,
Harald
|
|
|
|
| eRo |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 06.03.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2016a
|
 |
|
|
 |
|
Verfasst am: 10.04.2017, 09:34
Titel:
|
 |
Hallo,
ja das hab ich mir schon so gedacht, . Ich wollte halt allgemein die Schleifenanzahl reduzieren.
Aber danke für die Gedanken. Das nächste Problem kommt bestimmt.
eRo
|
|
|
|
|
|
|
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.
|
|