|
|
Zufallsmatrix mit nxm Einträgen aus dem Intervall [0,10] |
|
Sabine2346 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 16:35
Titel: Zufallsmatrix mit nxm Einträgen aus dem Intervall [0,10]
|
 |
Hallo!
Ich fange grade an, mich mit Matlab auseinander zu setzen und komm teilweise noch nicht so gut klar.
Ich soll ein Programm schreiben, dass einem nach der Anzahl der Spalten(m) und Zeilen(n) fragt, und dann zufällig eine nxm Matrix mit zufälligen REELLEN Zahlen im Intervall zwischen [0,10] erzeugt wird.
Das Programm ist soweit fertig, nur leider habe ich mit ganzen Zahlen gearbeitet. Jetzt komm ich nicht klar, dass es reellen Zahlen sein sollen. Dabei dürfte es doch gar nicht so schwer sein.
Hat jemand eine Idee?
|
|
|
|
|
soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 16:39
Titel:
|
 |
Wie hast du denn die ganzzahligen Zufallszahlen erzeugt ?!
|
|
|
Sabine2346 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 16:46
Titel:
|
 |
A=zeros(n,m);
for i=1:n
for j=1:m
A(i,j)= randi(11,1)-1;
so hab ich die ganzen Zahlen erzeugt. ich denke, ich muss rand statt randi benutzen.
Ich hab schon einiges ausprobiert, aber lande nie im Intervall [0,10]...
|
|
|
soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 17:03
Titel:
|
 |
Genau, du brauchst rand. Hast du dir die Hilfe zu rand durchgelesen? Du erzeugst somit Zufallszahlen im Intervall [0,1]. Wenn du nun mit 10 multiplizierst erhälst du das Intervall[0, 10], also:
Zuletzt bearbeitet von soad am 19.11.2011, 17:09, insgesamt 2-mal bearbeitet
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 17:05
Titel:
|
 |
Nein, sie benutzt randi und erzeugt die Zufallszahlen im Intervall [1,11] und zieht dann 1 ab. Das sollte richtig sein. Was passt denn daran nicht?
.. geht bei mir..
|
|
|
soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 17:10
Titel:
|
 |
@ eupho: Sie möchte ja reelle Zufallszahlen.
|
|
|
Sabine2346 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 17:18
Titel:
|
 |
ja genau, ich brauche reelle Zahlen.
mit *10 hab ich das auch schon ausprobiert, aber irgendwie funktioniert das alles trotzdem nicht.
mit rand(n,m)*10 kommt immer diese fehlermeldung:
??? Subscripted assignment dimension mismatch.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 17:31
Titel:
|
 |
Hallo,
wenn diese Fehlermeldung kommt, versuchst du vermutlich, diese Matrix einer anderen zuzuweisen, die nicht die passende Dimension hat. Das hat aber nichts mit den Zufallszahlen zu tun.
Einfaches Beispiel:
3 Elemente an 2 Stellen schreiben --> wird nichts, selbe Fehlermeldung.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 22:39
Titel:
|
 |
Hallo Sabine,
"rand(n, m)" erzeugt eine Matrix mit Zahlen zwischen 0 und 1, während "randi(n, m)" einen Vektor mit m Elementen zwischen 0 und n erzeugt.
Gruß, Jan
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 22:57
Titel:
|
 |
Jan S hat Folgendes geschrieben: |
Hallo Sabine,
"rand(n, m)" erzeugt eine Matrix mit Zahlen zwischen 0 und 1, während "randi(n, m)" einen Vektor mit m Elementen zwischen 0 und n erzeugt.
Gruß, Jan |
Ich korrigiere, zwischen 1 und n
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 19.11.2011, 23:07
Titel:
|
 |
Hallo eupho,
Zitat: |
Ich korrigiere, zwischen 1 und n |
Richtig.
Danke! Es ist sehr hilfreich, wenn aufmerksame Leser sich um Tippfehler kümmern.
Gruß, Jan
|
|
|
Sabine2346 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.11.2011, 12:47
Titel:
|
 |
Ah danke, ich glaube ich hab ne Lösung gefunden!! :
[ A(i,j)=rand(1:n,1:m)*10;]%
Jetzt bekomme ich endlich meine Matrix mit reellen Einträgen, und auch alles weitere läuft.
Allerdings meckert Matlab immer noch, bevor meine Matrix ausgespuckt wird ( und das so rund 30 mal nacheinander):
Warning: Input arguments must be scalar.
Ich verstehe das Problem nicht. Was ist als Input arguments gemeint? n und m? aber die sind doch skalar, weil das ganze zahlen sind..
|
|
|
Sabine2346 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.11.2011, 12:51
Titel:
|
 |
|
|
Schäfchen |

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 23.01.11
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: 2008 a, 2010b
|
 |
|
|
 |
|
Verfasst am: 20.11.2011, 13:08
Titel:
|
 |
du brauchst gar keine for-schleife
erstellt schon eine n x m Matrix mit zufallseinträgen zw. 0 und 1.
Programmiertechnisch ist die bereits vorgeschlagene Variante
wesentlich eleganter (ohne for-Schleife)
|
|
|
sabine2346 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.11.2011, 13:18
Titel:
|
 |
also ich muss ja nicht nur so eine matrix erstellen.
ich muss auch noch die einträge in der matrix, die in den intervallen [3,4] und [8,9] liegen, zählen.
mein programm bislang:
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|