|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.03.2011, 17:50
Titel: statistische Auswertung
|
 |
|
 |
|
Hallo zusammen!
Ich hab da mal eine Frage zu statistischen Auswertungen. Meine Daten liegen spaltenweise in einer 64000x128 float-Matrix vor. Ich möchte die einzelnen Spalten statistisch bewerten. min(), max(), std(), mean(), median() sind mir klar und es funktioniert auch schon:
[code]
m1 = min(fdata.data(:,j));
m1 = max(fdata.data(:,j));
m1 = mean(fdata.data(:,j));
m1 = median(fdata.data(:,j));
[\code]
Jetzt möchte ich die Anzahl der Element pro Spalte wissen, die größer bzw. kleiner einer bestimmten Schranke sind. Mein Ansatz: Schleife über alle Zeilen... Funktioniert, ist aber recht langsam - zumal mehrere 100 Dateien eingelesen werden sollen.
Kennt jemand eine fertige Fkt. die das Problem rascher lösen kann?? Habe die Matlab - Hilfe kurz durchforstet, weiß aber nicht wirklich wie ich meine Frage formulieren soll ....
Danke im vorraus und LG
ChJ
PS: Zur Info habe ich meinen Code angehängt. Falls irgendjemand Kommentare/Bemerkungen / ... loswerden will wie man das Prog. beschleunigen kann wäre ich sehr dankbar!
Beschreibung: |
|
 Download |
Dateiname: |
dirtest.m |
Dateigröße: |
1.08 KB |
Heruntergeladen: |
424 mal |
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.03.2011, 23:10
Titel: Re: statistische Auswertung
|
 |
Hallo Anonymous,
Zitat: |
Jetzt möchte ich die Anzahl der Element pro Spalte wissen, die größer bzw. kleiner einer bestimmten Schranke sind. |
Möglichkeiten zur Beschleunigung:
1. Statt jedes Mal "fdata.data(:, j)" erneut zu erzeugen, benutze einen temporären Vektor: "data = fdata.data(:, j)". Das Herauskopieren einer Spalte braucht nämlich ziemlich viel Zeit.
2. Statt die Spalten einzeln auszuwerten, kannst Du das gleich für die ganze Matrix machen: "min(data, 1)" ergibt gleich einen Vektor der MIN Werte entlang der ersten Dimension. Das gleiche für MAX, MEAN, STD, MEDIAN und den oben genannten Schwellenwert: "sum(data > 3, 1)".
Insgesamt vermute ich aber, dass das Einlesen und Schreiben der Files den Großteil der Rechenzeit benötigt. Benutze doch mal PROFILE um die langsamsten Zeilen zu finden. Es nützt wenig, wenn die Berechnungen 100 mal schneller sind, aber nur 2% der Gesamt-Laufzeit benötigen.
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.03.2011, 08:01
Titel:
|
 |
Hallo Jan
Danke für die prompte und ausführliche Antwort!
LG
chj
|
|
|
|
|
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.
|
|