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

Standardabweichung mit for schleife

 

eltonno
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 13:10     Titel: Standardabweichung mit for schleife
  Antworten mit Zitat      
Moin Leute,
ich bin noch ein Anfänger in Sachen Matlab... Ich soll nun die n-1 Standardabweichung berechen... mit Hilfe einer Schleife
Mein Verusch:
Code:

clc
clear all
n = [12.3 14.6 10.7 16.2 9.9 10.1 9.5];
for i=1: length(n)
    if i==length(n)
       f=sqrt(1/(length(n)-1)*(i-sum(n)/length(n))^2)
       
    end
end
 

Das Problem ist das i, weil ich für das i ja die einzelnen Werte von n einsetzen muss...
wäre für jede Hilfe dankbar!
_Peter_: Bitte Codeumgebung nutzen. Danke.
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 04.07.2011, 13:39     Titel:
  Antworten mit Zitat      
Du willst ja das i. Element von n benutzen, also schreibst du n(i).

Deine Formel ist aber nicht ganz richtig. Du musst zunächst die Summe von
x = sum( n(i) - arithmetischer_mw_n)² bilden.

arithmetischer_mw_n = sum(n)/length(n)

Erst dann kommt der Ausdruck mit der Wurzel.

Code:
S=sqrt((1/(length(n)-1)) * x)


Darfst du denn die Funktion sum() verwenden, oder soll das auch in einer Schleife erfolgen?
Private Nachricht senden Benutzer-Profile anzeigen
 
eltonno
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 14:49     Titel:
  Antworten mit Zitat      
Hi danke dir für deine Hilfe...
ich habe das Programm nun umgeschrieben, leider komm ich nicht aufs ergebniss, vllt kann kurz noch jemand drüber schauen...
Code:

clc
clear all
n=[12.3 14.6 10.7 16.2 9.9 10.1 9.5];
for i=1: length(n)
    if i==length(n)
        arithmetischer_mw_n = sum(n)/length(n)
        x=sum(n(i)-arithmetischer_mw_n)^2
       
        S=sqrt(1/(length(n)-1) * x)
       
    end
end

 

Vllt könnte mir auch noch jemand n tipp geben wie ich den Mittelwert mit einer Schleife berechnen kann...
Danke schonmal[/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 04.07.2011, 15:49     Titel:
  Antworten mit Zitat      
Was soll denn deine if Abfrage bewirken...deine Rechnung wird dann nur ein mal ausgeführt, wenn das letzte Element von n genommen wird? Du willst doch aber jedes Element nutzen.
Berechnung einer Summe in einer Schleife

Summe = Summe + i. Wert

Tip: Du brauchst zwei for Schleifen, einmal für arithm_mw und einmal für das x. Die Standardabweichung wird nicht in der Schleife berechnet Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
eltonno
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 16:21     Titel:
  Antworten mit Zitat      
Hi danke dir!
Den Mittelwert konnte ich nun mit Hilfe einer Schleife berechnen.
Vllt bekomme ich auch noch einen Tipp für die Standartabweichung? Wink

Hier der neue Code:
Code:

clc
clear all
n=[12.3 14.6 10.7 16.2 9.9 10.1 9.5];
Summe=0
%Mittelwert berechnen
for i=1: length(n);
    x=n(i);
    Summe=Summe+x;
    Ergebniss=Summe/length(n)
end

for i=1: length(n)
        arithmetischer_mw_n =Ergebniss;
        x=sum(n(i)-arithmetischer_mw_n)^2;
       
       
end
 
S=sqrt(1/(length(n)-1) * x)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 04.07.2011, 16:44     Titel:
  Antworten mit Zitat      
Code:

n=[12.3 14.6 10.7 16.2 9.9 10.1 9.5];
%Mittelwert berechnen
 Summe = 0;
for i=1: length(n);
     Summe=Summe+n(i);
end
arithmetischer_mw_n = Summe/length(n);
x = 0;
for i=1: length(n)
    x = x + (n(i) - arithmetischer_mw_n)^2;        
end
   
S=sqrt((1/(length(n)-1)) * x)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
eltonno
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 04.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 17:03     Titel:
  Antworten mit Zitat      
dankeschön.
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.