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 bestimmen aus 50000 Werten und Standardabweichung

 

markbln
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2011, 08:17     Titel: Mittelwert bestimmen aus 50000 Werten und Standardabweichung
  Antworten mit Zitat      
Hallo liebe Gemeinde. Vorweg möchte ich erwähnen, dass ich noch nie zuvor mit Matlab gearbeit habe.

Meine Aufgabe ist folgendermaßen

ich habe eine Tabelle in Excel mit 50000 Werten.
Diese lese ich mir nun in Matlab ein

x=xlsread('adf','C5:C50004');

aus diesen 50000 Werten soll ich nun den Mittelwert bilden

Mittelwert=mean(x)

Und nun stoße ich an meine Grenzen, denn im nächsten Schritt soll ich den Mittelwert immer aus 10 aufeinander folgenden Werten bilden

also Werte 1 - 10 und daraus den Mittelwert 11 - 20 usw. und diese ermittelten Werte in eine neue Matrix/Vektor schreiben.

Wie kann ich das realisieren?

Anschliessend soll ich die Standardabweichung bestimmen und alles plotten.

Ich habe leider überhaupt kein Plan von Matlab.

Bitte dringend um Hilfe

DANKE!!!
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 07.10.2011, 08:54     Titel:
  Antworten mit Zitat      
Hast du denn schon was ausprobiert/nachgelesen, was funktioniert denn nicht? Zeig uns doch mal den Code, den du bisher hast. Hier wird niemand die Hausaufgaben für dich lösen, aber gerne Fragen beantworten.
Private Nachricht senden Benutzer-Profile anzeigen
 
markbln
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2011, 09:11     Titel:
  Antworten mit Zitat      
Code:
x=xlsread('adf','C5:C50004');

Mittelwert=mean(x)

i=5000;
k=10;
Mittelwertzehn=zeros(5000,1)
for i=1:5000
   k=1:10
    Mittelwertzehn(i)=mean(x(k))    
end

x=xlsread('adf','C5:C50004');  % liest die Tabelle aus Excel ein

Mittelwert=mean(x)                 % bestimmt den Mittelwert aus allen 50000 Werten  
i=5000;                             % 5000 Zeilen im neuen Vektor, da immer der Mittelwert von 10 Werten gebildet werden soll
k=10;                               % immer 10 Werte aufaddieren und Mittelwert bilden
Mittelwertzehn=zeros(5000,1)    % erstellt Vektor mit Nullen, die dann gefüllt werden
for i=1:5000
   k=1:10
    Mittelwertzehn(i)=mean(x(k))    
end
 

Nun ist die Frage, ob die formel das macht, was ich ihr sage...

Ich möchte, dass sie die ersten 10 Werte nimmt (1-10) und daraus den Mittelwert bildet und anschliessend die nächsten 10 Werte (also 11 - 20) und daruas den Mittelwert bildet und diese dann in den neuen Vektor schreibt (Mittelwertzehn)

_Peter_: Bitte Codeumgebung verwenden. Danke.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
markbln
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2011, 09:45     Titel:
  Antworten mit Zitat      
Neuer Lösungsvorschlag:
Code:

x=xlsread('gox','C5:C50004')

Mittelwert=mean(x);

mittel10=mean(reshape(x,10,[]));
mi10=(mittel10)'
 

Funktionert soweit :p

_Peter_: Bitte Codeumgebung verwenden. Danke.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 07.10.2011, 09:55     Titel:
  Antworten mit Zitat      
Das Einlesen der Daten ist der 1. Schritte und dann...

Code:

k=1;
mw_10 = zeros(length(x)/10,1); % preallocate
for i=1:10:length(x) % i = 1,11,21...91
    mw_10(k) = mean(x(i:i+9)); % Mittelwert über 10 Werte aus x
    k=k+1;
end
 


Edit: Die reshape Lösung ist doch elegant und kurz Exclamation
Private Nachricht senden Benutzer-Profile anzeigen
 
markbln
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2011, 10:17     Titel:
  Antworten mit Zitat      
Nun würde ich gern eine Gaußverteilung plotten
Code:

x=xlsread('gox','C5:C50004')

Mittelwert=mean(x);

mittel10=mean(reshape(x,10,[]));
mi10=(mittel10)'

stand=std(mi10)

plot(stand)
 

kommt aber leider nicht der gewünschte Graf....

Was muss ich tun

_Peter_: Bitte die Codeumgebung verwenden! Danke!
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 07.10.2011, 10:32     Titel:
  Antworten mit Zitat      
Im "Workspace" siehst du, welche Klasse und Dimension deine Variablen haben. Dann siehst du beispielsweise, dass deine Variable stand durch den Befehl std() nur noch ein Skalar ist. Plottet man einen Skalar, so ist dies entsprechend nur ein Punkt.

Schau dir mal den Befehl hist() an.
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.