So generieren Sie in Octave Vektoren mit Zufallszahlen
In dieser Lektion möchte ich Ihnen zeigen, wie Sie in Octave einen Vektor oder ein Array mit Zufallszahlen erzeugen können.
Lassen Sie uns das Ganze anhand eines praktischen Beispiels verdeutlichen.
Stellen Sie sich vor, Sie möchten einen horizontalen Vektor aus 5 Elementen erzeugen, deren Werte zufällig zwischen 0 und 1 liegen.
Dazu müssten Sie den Befehl rand(1,5) eingeben:
>> rand(1,5)
ans = 0.49304 0.44118 0.76854 0.67157 0.90157
Wollen Sie hingegen denselben Vektor erstellen, jedoch mit vertikal angeordneten Elementen, wäre der Befehl rand(5,1) der richtige:
>> rand(5,1)
ans =
0.832438
0.132569
0.036763
0.953994
0.483982
Ein kleiner Exkurs: Ein vertikaler Vektor [5,1] entspricht im Grunde einer Matrix mit vielen Zeilen (5) und einer einzigen Spalte (1). Auf der anderen Seite entspricht ein Zeilenvektor [1,5] einer Matrix, die aus einer einzigen Zeile (1) und vielen Spalten (5) besteht.
Möchten Sie einen Vektor aus 5 reellen Zahlen zwischen 0 und 10 erstellen, wäre der Befehl rand(1,5)*10 der passende:
>> rand(1,5)*10
ans =
6.1685 8.9548 6.4072 7.9498 3.9733
Wenn Sie hingegen einen Vektor aus 5 reellen Zahlen zwischen -5 und 5 generieren möchten, sollten Sie rand(1,5)*10-5 eingeben:
>> rand(1,5)*10-5
ans =
2.93633 -0.58853 -1.37175 3.83107 4.31426
Zur Erstellung eines horizontalen Vektors, der aus 5 Ganzzahl-Elementen mit Werten zwischen 18 und 30 besteht, wäre der Befehl randi([18,30],1,5) der richtige:
>> randi([18,30],1,5)
ans =
26 21 24 28 21
Möchten Sie denselben Vektor vertikal erstellen, geben Sie stattdessen randi([18,30],5,1) ein:
>> randi([18,30],5,1)
ans =
18
28
30
29
20
Eine alternative Herangehensweise besteht darin, Vektoren aus zufälligen Ganzzahlen zu erstellen, indem Sie die Funktion zur Generierung von Zufallszahlen rand() mit der Rundungsfunktion round() kombinieren.
Um beispielsweise ein Array von 5 Ganzzahlen mit Werten zwischen 18 und 30 zu erstellen, würden Sie round(rand(5,1)*12+18) eingeben:
>> round(rand(5,1)*12+18)
ans =
26
27
29
24
25