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

normalverteilte Zufallszahlen zwischen -1 und 1

 

PhilSG

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2011, 16:30     Titel: normalverteilte Zufallszahlen zwischen -1 und 1
  Antworten mit Zitat      
Hallo,

ich muss normalverteilte zufallszahlen zwischen -1 und 1 generiern und finds einfach nicht raus wie ich das schaffen kann? kann mir jemand helfen, es ist wirklich dirngend!


vielen dank im voraus


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 19.05.2011, 16:49     Titel:
  Antworten mit Zitat      
siehe

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.05.2011, 21:20     Titel: Re: normalverteilte Zufallszahlen zwischen -1 und 1
  Antworten mit Zitat      
Hallo PhilSG,

"Normalverteilt" und "zwischen -1 und 1" widerspricht sich.
Normalverteilte Zahlen haben keinen Maximal-Wert, oder?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 20.05.2011, 23:11     Titel:
  Antworten mit Zitat      
Höchstwahrscheinlich meint er normalverteilte Zufallszahlen mit Mittelwert 0 und Standardabweichung 1 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: 21.05.2011, 12:52     Titel:
  Antworten mit Zitat      
Hallo,

es ist durchaus möglich, Zufallszahlen zu bekommen, die normalverteilt aussehen, aber auf ein Intervall beschränkt sind. Dazu sind allerdings zusätzliche Informationen notwendig, wie die Zufallszahlen genau verteilt sein sollen.

Hier eine mögliche Variante:
Code:
function y = normMax1(n, dev)
y = randn(n,1)*dev;
yrep = abs(y) > 1;
if any(yrep)
    y(yrep) = normMax1(nnz(yrep),dev);
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.05.2011, 11:14     Titel:
  Antworten mit Zitat      
Hallo Harald,

Deine Lösung ist sehr gut, wenn es ausreichend ist, dass die Werte normal-verteilt "aussehen". Hier müsste nun PhilSG nochmal genau erklären, was er genau braucht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
jokie

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2011, 21:23     Titel:
  Antworten mit Zitat      
Code:
s=rand(1,N);
s(s>.5)=1;
s(s<=.5)=-1;
 
aemkah
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 08.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2012, 17:13     Titel:
  Antworten mit Zitat      
da ich keinen neuen thread erstellen wollte, psuh ich diesen hier mal.

und zwar hab ich ein ähnliches problem und werd leider nicht aus obigen oder im forum gefundenen antworten schlau.

ich brauche zahlen in einem best. intervall(z.b. von -5 bis 5), die normalverteilt sind. jetzt steht oben schon, dass grenzen praktisch der normalverteilung widersprechen, wobei ich das leider nicht ganz verstehe. rein theoretisch ist es doch logisch, dass zahlen um einen gewissen mittelwert herum normalverteilt sind, aber innerhalb einer gewissen grenze. bei meinem problem geht es um pixel eines bildes. ein bildrauschen wird durch gleich- oder normalverteilten zahlen erzeugt. dieses bildrauschen soll aber gewisse grenzen nicht überschreiten, daher das intervall.

um mir diese intervalle erzeugen zu können, bräuchte ich eine fkt, die mir zufallszahlen normalverteilt zw. 0 bzw -1 und 1 erzeugt, so wie vom thread-ersteller gefragt.

weiter unten hat harald dann was gepostet, was soweit funktioniert, aber was ich nicht durchblicke.

vielleicht mag mir ja jemand helfen? Wink
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: 11.09.2012, 20:35     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
rein theoretisch ist es doch logisch, dass zahlen um einen gewissen mittelwert herum normalverteilt sind, aber innerhalb einer gewissen grenze.

Nein, das ist nicht logisch. Die Normalverteilung ist unbeschränkt, d.h. es sind beliebig stark abweichende Werte möglich, sie sind nur sehr unwahrscheinlich.

Zu meinem Code:
es werden normalverteilte Zufallszahlen erzeugt. Die Zufallszahlen, die aus dem gewünschten Intervall herausfallen, werden rekursiv durch neue ersetzt, bis alle Zufallszahlen im gewünschten Intervall sind.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
aemkah
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 08.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2012, 12:09     Titel:
  Antworten mit Zitat      
Alles klar. Super! Nur noch ne Frage: Was genau macht der Parameter "dev"? Soll er die Standardabweichung festlegen? Kenn mich in Statistik leider garnet aus, und kann ihn mir net ganz erschließen -.-

Grüßle
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: 12.09.2012, 18:28     Titel:
  Antworten mit Zitat      
Hallo,

genau. Er gibt an, wie stark die Werte gestreut sein sollen. (dev für deviation bzw. Standardabweichung). Je größer dev ist, desto mehr Werte liegen nahe an den Rändern.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2014, 10:58     Titel:
  Antworten mit Zitat      
hey,

ich grab einfach mal den thread wieder aus, da ich glaube mein Problem passt ganz gut dazu.

Also ich will eine normalverteilte Zufallsmatrix erzeugen mit einem bestimmten Mittelwert= 0 und einer betimmten Standardabweichung=0.1

hab das schon über die matlab-hilfe damit versucht:

Code:

mu = [1 2];
sigma = [1 0.5; 0.5 2];
R = chol(sigma);
z = repmat(mu,10,1) + randn(10,2)*R
 


so wie ich das verstanden habe, hat da eine Spalte den Mittelwert 1 und die andere 2. Wie das aber genau mit sigma ist versteh ich nicht.

Oder gibts nen anderen Weg, um die Zufallsmatrix zu erzeugen?

Grüße Paul
 
Harald
Forum-Meister

Forum-Meister


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

dieser Ansatz wird gewählt, wenn die Spalten korreliert sein sollen.
sigma ist dabei die Korrelationsmatrix.

Es wäre gut, wenn du den konkreten Link zur Doku postest, wenn du dort etwas findest und genauere Informationen brauchst.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2014, 09:13     Titel:
  Antworten mit Zitat      
hallo Harald,

hier der link zur doku (siehe Beispiel zu X = randn(sz1,...,szN)):
http://www.mathworks.de/help/matlab/ref/randn.html#buf2cft-1

Mittlerweile weiß ich, dass die Matrizen auch positiv definit sein müssen, also auch symmetrisch für diesen weg.

gibt es dennoch die Möglichkeit für eine normalverteilte zufallsmatrix, wie mit dem Befehl randn, nur mit einem bestimmten Mittelwert und Standardabweichung?

Grüße Paul
 
Harald
Forum-Meister

Forum-Meister


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

dazu brauchst du nur die Rückgabe von randn entsprechend zu strecken/verschieben. Das ist sogar in der Doku von randn direkt verlinkt:

http://www.mathworks.com/help/matla.....ic-mean-and-variance.html

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

Gehe zu Seite 1, 2  Weiter

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.