WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mittelwert bilden aus 10 Werten einer externen Datei

 

soerenoez
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.01.2015, 23:14     Titel: Mittelwert bilden aus 10 Werten einer externen Datei
  Antworten mit Zitat      
Hallo alle zusammen!

Ich habe folgendes Problem:
Ich habe eine Excel Datei mit sehr vielen Zeilen und 7 Spalten. Die erste Spalte zeigt die Zeit, die anderen 6 bestimmte Kraftdaten. Nun habe ich jedoch das Problem dass in der Tabelle immer 10mal dieselbe Zeit angegeben wird, also 10 Zeilen lang dieselbe Zeit in der ersten Spalte angezeigt wird. Die anderen 6 Felder pro Zeile jedoch sich pro Zeile voneinander unterscheiden (was sie ja eigentlich nicht sollten, da sie (laut erster Spalte) zu genau dem selben Zeitpunkt aufgenommen wurden). Naja, die Lösung lautet nun die 10 Werte für eine Spalte zu mitteln, um am Ende pro Zeitpunkt nur noch einen Wert pro Spalte zu haben, und zwar den gemittelten über die 10 Werte die zu demselben Zeitpunkt aufgenommen wurden.

Ich weiß dass das erstmal verwirrend klingt, ist aber ein ganz einfaches Problem und ich möchte gerne diese Datei per MatLab einlesen, jeweils 10 Zeilen lang jede Spalte mitteln und dann in einer anderen externen Datei wieder speichern.
Da ich an meinem Projekt, für das ich dieses Programm brauche, noch viele andere Probleme habe habe ich ausgesprochen wenig Zeit mich viel mit der Programmierung auseinanderzusetzen die ich dafür brauche. Ich hoffe daher sehr dass ich hier etwas Hilfe bekomme. Falls irgendwelche Fragen sind antworte ich gerne, ich bin für jede Hilfe dankbar!

Um mein Problem etwas deutlicher zu zeigen habe ich schnell eine kleine excel tabelle geschrieben, die mein Problem in kleiner Form zeigt. In Wirklichkeit habe ich über 100.000 Zeilen Messwerte.

Vielen Dank im Voraus für jede Hilfe!

Sören Smile

example11.xls
 Beschreibung:

Download
 Dateiname:  example11.xls
 Dateigröße:  9.5 KB
 Heruntergeladen:  344 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.01.2015, 00:09     Titel:
  Antworten mit Zitat      
Hallo,

Code:
data = xlsread('example11.xls');
time = data(:,1);
data(:,1) = [];

origSize = size(data);
data = reshape(data, 10, []);

dataSmall = mean(data);
dataSmall = reshape(dataSmall, [], origSize(2));
timeSmall = time(1:10:end);


Ich glaube, mich hat die Lösung des Problems weniger Zeit gekostet als dich dessen Beschreibung. Insofern wäre meine Empfehlung, sich ausführlich in MATLAB einzuarbeiten - gerade wenn dies nur ein kleiner Teil des Projekts ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 07.01.2015, 00:20     Titel:
  Antworten mit Zitat      
Hallo,

Was spricht denn gegen die Verwendung einer Pivot-Tabelle, wenn du schon keine Zeit und/oder Lust auf Matlab hast? Dein Problem ist ja quasi ein Paradebeispiel dafür.

http://www.pivot-tabelle.de/excel/

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
soerenoez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 11:57     Titel:
  Antworten mit Zitat      
Vielen vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
soerenoez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 16:31     Titel: NaN bei vielen Einträgen
  Antworten mit Zitat      
Hallo nochmal,

vielen Dank für die Hilfe!
Wenn ich dein Programm über meine große csv Tabelle laufen lasse gibt er mir nun oft die Meldung NaN. Scheint als ob er mit den negativen Einträgen und kleinen Zahlen nicht umgehen kann. Woran kann das liegen bzw. wie kann ich das umgehen?
Ich habe das Programm etwas umgeschrieben:

Code:

data = xlsread('ms001mpt001.csv');

origSize = size(data);
data = reshape(data, 10, []);

dataSmall = mean(data);
dataSmall = reshape(dataSmall, [], origSize(2));

xlswrite('MessreiheMittelwert.csv');
 


(Ich muss mit csv-Dateien arbeiten, was ich gestern noch nicht wusste).
Da ich gerne auch verstehen möchte was ich benutze würde mich interessieren was das "origSize(2)" bei dem zweiten "reshape" darstellt. Soweit ich es verstanden habe die Anzahl der Spalten der dataSmall Tabelle, aber warum dann die 2?
Ich weiß die Hilfe wirklich sehr zu schätzen und versuche auch die Programme zu verstehen wenn ich sie nutze. Wenn du mir sagen könntest wie ich das Problem mit den NaN umgehen kann wäre ich sehr dankbar.

Sören Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.01.2015, 16:43     Titel:
  Antworten mit Zitat      
Hallo,

das Problem dürften weniger negative oder kleine Werte als fehlende Werte sein.
Du kannst im Code mean durch nanmean (aus der Statistics Toolbox) ersetzen. Dann sollten die NaN verschwinden, sofern nicht alle Werte für einen Zeitpunkt fehlen.

Zitat:
Soweit ich es verstanden habe die Anzahl der Spalten der dataSmall Tabelle, aber warum dann die 2?

origSize enthält [ZeilenAnzahl, SpaltenAnzahl].

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
soerenoez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 16:59     Titel: noch nicht gelöst...
  Antworten mit Zitat      
Danke für die Antwort!

nanmean gibt jedoch auch die NaN's aus...

Außerdem sagt er mir jedesmal wenn ich die neu erstellte Datei öffnen möchte dass ihr "Format von dem in der Dateierweiterung angegebenen abweicht. Stellen Sie sicher, dass die Datei nicht bschädigt ist und aus einer vertrauenswürdigen Quelle stammt, bevor Sie die Datei öffnen. Möchten Sie die Datei jetzt öffnen?" Wenn ich sie dann öffne fehlen halt dort Werte wo in Matlab NaN angegeben ist. Dies ist aber auch geklöst wenn keine NaN mehr da sind.

Noch irgendwelche Ideen woran das liegen könnte? Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.01.2015, 17:26     Titel:
  Antworten mit Zitat      
Hallo,

kannst du mal eine Beispieldatei anhängen, bei der die Probleme wirklich auftreten?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
soerenoez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 18:02     Titel:
  Antworten mit Zitat      
Gerne, alle Dateientypen, in denen sie angezeigt werden können sind jedoch hier verboten (.csv,.xlsx usw) und bei anderen Typen verändern sich die Werte bzw. die Kommastellen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.01.2015, 18:08     Titel:
  Antworten mit Zitat      
Hallo,

bitte zippen und anhängen - das geht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
soerenoez
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 23.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.01.2015, 17:18     Titel:
  Antworten mit Zitat      
ok danke stimmt.
Hab sie jetzt angehängt

OrdnerMessung.zip
 Beschreibung:

Download
 Dateiname:  OrdnerMessung.zip
 Dateigröße:  4.67 MB
 Heruntergeladen:  830 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.01.2015, 10:36     Titel:
  Antworten mit Zitat      
Hallo,

das Problem der NaN entsteht ja schon beim Einlesen.
Bei mir wird deine Excel-Datei merkwürdig angezeigt, nämlich mit . als Dezimaltrennzeichen trotz deutscher Ländereinstellungen. Meine Vermutung wäre also, dass bereits beim Erstellen der Eingabedatei irgendwas schiefgegangen ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.