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

Normalverteilung nach Formel ploten

 

hadzelvi
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2014, 10:41     Titel: Normalverteilung nach Formel ploten
  Antworten mit Zitat      
Hallo,

hab ein kleines Problem. Ich versuche einen Plot als rote linie nach folgender formel " f(t) = (N.^2/SD*sqrt(2*pi)) * exp(-t.^2/2*SD^2 "

t --> Intervall
SD --> Standardabweichung
N --> Anzahl der Elemente

hab also so versucht:
SD = 10;
N = 100;
t = [minD : maxD]; % minD und maxD --> min. und max Ele. aus Matrix D

y = ((N.^2/SD*sqrt(2*pi))*exp(-t.^2/2*SD^2));

bei der Ausgabe hapert es. hab es mit histfit() versucht auszugeben, aber irgendwie komme ich nicht drauf wie ich es machen soll.

hat jemand einen vorschlag?

Mfg
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.04.2014, 11:19     Titel:
  Antworten mit Zitat      
Zitat:
Ich versuche einen Plot als rote linie

warum benutzt du dann nicht plot ?
Code:
SD = 10;
N = 100;
t = [minD : maxD]; % minD und maxD --> min. und max Ele. aus Matrix D

y = ((N.^2/SD*sqrt(2*pi))*exp(-t.^2/2*SD^2));
plot(t,y,'r')

bitte benutze die code umgebung wenn du code postest Smile
Zitat:
bei der Ausgabe hapert es
solche aussagen sind nicht so informationsreich wie sie auf den ersten blick scheinen ^^ ich kann daraus nicht erraten was nicht mit der ausgabe stimmt.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
hadzelvi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2014, 13:40     Titel:
  Antworten mit Zitat      
Code:
 % Programm


N = 100;
C = fix(randn(N)*10); % Matrix C mit intervall [0,10)
s = 10;
mittelwert = 0;

D = round((rand(N))*s + mittelwert); % Matrix D mit std und mittelwert
mean(D);
std(D);


minc = min(C(:));   % kleinstes wert
maxc = max(C(:)); % grösstes wert


mind = min(D(:));      % kleinstes wert
maxd = max(D(:));    % grösstes wert

%Häufigkeitsverteilung von C und D

wertC = unique(sort(C));
c = zeros(0);

% Häufigkeitliste von der Matrix C erstellen
for i=1 : size(wertC,1)
anzahlC = sum(C(:,1) == wertC(i));
c = [c; wertC(i) anzahlC];
end

wertD = unique(sort(D));
d = zeros(0);

plot(c);
plot(d);

% Häufigkeitliste von der Matrix D erstellen
for i=1 : size(wertD,1)
anzahlD = sum(D(:,1) == wertD(i));
d = [d; wertD(i) anzahlD];


t = [mind : maxd];  % Intervall  von mind bis maxd

f =  (N.^2/ s * sqrt(2*pi)) * exp(-t.^2/2*s.^2) ;

 


ich schaffe es nicht den Plot von "d", die Normalverteilung nach der Formel zu zeichnen.


glaube so ist es besser erklärt, wo mein Problem liegt
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.04.2014, 14:07     Titel:
  Antworten mit Zitat      
Zitat:
ich schaffe es nicht den Plot von "d", die Normalverteilung nach der Formel zu zeichnen.

ich seh den versuch auch garnicht.
einmal plottest du c mit plot(c)
und dann plottest du d mit plot (d) wobei d aber lehr ist und du also nur eine lehre figure bekommst.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
hadzelvi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2014, 14:44     Titel:
  Antworten mit Zitat      
Code:




%Matrix C
C = fix(rand(100)*10);

%  Matrix D
mittelwert = 0;      %Mittelwert
s = 10;    %Standardabweichung

D = round(randn(100)*s + mittelwert);
mean(D);    %Überprüfen von Mittelwert
std(D);     %Überprüfen von S.abweichung
round(D);   %Aufrunden von Ergebnissen
%--------------------------------------------------------------


% minimales und maximales Wert aus Matrizen C und D ausgeben
minC = min(C(:));       %kleinster Wert aus Matrix C
maxC = max(C(:));       %grösster Wert aus Matrix C

minD = min(D(:));       %kleinster Wert aus Matrix D
maxD = max(D(:));       %grösster Wert aus Matrix D
%--------------------------------------------------------------



%Die Häufigketien der einzelnen Matrizenelement C feststellen

%matC = reshape(C,size(C,1)*size(C,2),1);
wertC = unique(sort(C));
c = zeros(0);

% Häufigkeitliste erstellen
for i=1 : size(wertC,1)
anzahlC = sum(C(:,1) == wertC(i));
c = [c; wertC(i) anzahlC];
end

% Die Häufigkeiten der einzelnen Matrizenelment D feststellen

%matD = reshape(D,size(D,1)*size(D,2),1);
wertD = unique(sort(D));
d = zeros(0);

%Häufigkeitliste erstellen
for i=1 : size(wertD,1)
anzahlD = sum(D(:,1) == wertD(i));
d = [d; wertD(i) anzahlD];
end
%----------------------------------------------------------------


%Häufigkeitsverteilungen zeichnen, anhand der Ergebnisse aus "3"

plot(c);        %Ausgabe von "c"
plot(d);         %Ausgabe von "d"
%----------------------------------------------------------------



%Mittelwert als Horizontale zeichnen

plot(mean(C))       %Ausgabe aller Mittelwerte der Matrix C

%----------------------------------------------------------------


% Plot von "d" als Normalverteilung nach der Formel ... Zeichnen

t = [minD : maxD];  % Intervall von minD bis maxD
N = 100;
>> y = ((N.^2/s * sqrt(2*pi))* exp(-t.^2/2*s^2));  % y(t) = ...
 


hab jetzt den "d" befüllt, wie kann ich jetzt die Normalverteilung nac der Formel in den plot "d" im t-intervall einfügen ?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.04.2014, 15:08     Titel:
  Antworten mit Zitat      
bist du sicher das du plot(d) meinst und nicht
Code:
plot(d(:,1),d(:,2));
?
um etwas zusätzlich in dem grafen zu zeichnen kannst du entweder das handle übergeben oder aber auch einfach sowas mchen
Code:
figure(1)
plot(d(:,1),d(:,2));
hold on
t = minD : maxD;  % Intervall von minD bis maxD
N = 100;
y = ((N.^2/s * sqrt(2*pi))* exp(-t.^2/2*s^2));
plot(t,y,'r')

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
hadzelvi
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2014, 17:47     Titel:
  Antworten mit Zitat      
Danke dir, das hat mir viel geholfen Very Happy
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.