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

Structs: Mittelwerte und Standardabweichungen

 

keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 13.12.2007, 15:17     Titel: Structs: Mittelwerte und Standardabweichungen
  Antworten mit Zitat      
Hallo zusammen,

ich werte gerade Messdaten aus, dabei erhalte ich als Ergebnis einen Struct mit zwei Elementen, einen Vektor t der Länge L und eine Matrix c der Länge Lx3.
Die Ergebnisse von jeweils 5 Programmdurchläufen gehören dabei zusammen, deshalb möchte ich einen Mittelwert bilden, sowie Standardabweichungen vom Mittelwert.

Dabei soll der Vektor t erhalten bleiben (der ist in allen 5 Fällen der gleiche).
In der "Mittelwert-Matrix" c soll an der Stelle (i,j) der Mittelwert der Matrizenelemente c1(i,j), c2(i,j), c3(i,j), c4(i,j), c5(i,j) stehen.
Zudem hätte ich ganz gerne (für rein informative Zwecke, daher ists nicht so dringend) die Standardabweichung der Werte c1(i,j) bis c5(i,j) vom Mittelwert c(i,j) berechnet.

Ich könnte das natürlich alles als Funktion programmieren, so von Hand, hoffe aber, dass es da schon vorgefertigte Funktionen gibt ;)

Viele Grüße,
kel.

Edit: Im Moment nutze ich halt folgende Funktion für die Mittelwerte:
Code:
function c = mittel(c1,c2,c3,c4,c5)

t = c1.t;
y = (c1.y+c2.y+c3.y+c4.y+c5.y)/5;
c = struct('t',t,'y',y);

y ist dabei (zur Zeit) eine 205x3 Matrix.
Private Nachricht senden Benutzer-Profile anzeigen


Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 13.12.2007, 21:11     Titel:
  Antworten mit Zitat      
Je nachdem wie rum deine MAtrizen orientiert sind:
Code:

c.mittel = mean([c1.y  c2.y c3.y c4.y c5.y]);

 


(muss evtl noch transponiert werde...)
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.023
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 13.12.2007, 22:08     Titel:
  Antworten mit Zitat      
Das gleiche kannst du mit der Standardabweichung machen:
Code:
c.std = std([c1.y c2.y c3.y c4.y c5.y]);


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Themenstarter

Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 14.12.2007, 23:27     Titel:
  Antworten mit Zitat      
Kurze Frage (da ich MATLAB nicht hier zuhause habe, und erst Montag wieder an der Uni bin):

Kann sein, dass ich die Hilfe von MATLAB falsch verstehe, aber da steht doch drin, dass mir "mean" den Mittelwert über den Vektor liefert, den ich eingebe.
Würde dann ein mean([c1.y ... c5.y]) nicht den Mittelwert über alle 5 Arrays geben (also einen einzigen Wert)?

Denn mir geht es ja darum, hinterher einen Array der gleichen Länge wie die cX.y zu bekommen. Die letzten Daten waren 205x3 Arrays, folglich sollte c.mittel(i,j) der Mittelwert der cX.y(i,j) sein.

Wie gesagt, ich werds am Montag mal versuchen, ich wollte nur das Problem gegebenenfalls klarstellen, weil ich die Hilfe in der Tat anders verstanden habe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 15.12.2007, 00:58     Titel:
  Antworten mit Zitat      
Hallo keloid,

mean gibt dir den Mittelwert über eine Dimension der MAtrix an, falls nichts weiteres angegeben ist über die erste

ist A = rand(255,3)

dann liefert mean(A) eine Vektor der Länge 255 (je drei Werte gemittelt), das gleiche Ergebnis erhälst Du mit
Code:
.

Code:
liefert einen Vektor mit drei Einträgen, jeweils den Mittelwert der 255 Einträge in einer Spalte. Du musst deine Vektoren also nur zu einer geeigneten MAtrix zusammenbauen.

Willst Du aber stattdessen den Mittelwert _aller_ Einträge, dann hilft dir
Code:


Durch den Aufruf
Code:
"zwingst" du die Matrix A quasi in Spaltenform, genauso wie sie intern im Speicher ohnehin hinterlegt ist. Alles klar? Sonst frag ruhig weiter..
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....

Zuletzt bearbeitet von Michaela am 15.12.2007, 09:21, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Themenstarter

Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 15.12.2007, 01:12     Titel:
  Antworten mit Zitat      
Okay, ich denke, ich verstehe es jetzt besser.
Ich werde es mal ausprobieren ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Themenstarter

Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 17.12.2007, 11:58     Titel:
  Antworten mit Zitat      
Vielen Dank, es hat geklappt :)
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 - 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.