2009-12-05 14 views
10

Wie mache ich ein Array, das mit einem Startpunkt, einem Endpunkt und einer gesamten Array-Größe definiert ist? So etwas wie ein Array von 1 bis 10, das 20 Elemente lang ist. Zum Beispiel könnte das Array in etwa so aussehen:Wie erstelle ich ein regelmäßiges Array von Werten in MATLAB?

1 1.5 2 2.5 3 3.5 ... 
+0

In dem Abtastvektor man gibt, von 1 bis 10 in Schritten von 0,5 würde Bewegen geben Sie einen 19-Element-Vektor, nicht 20. – gnovice

+0

19 - Ich zählte an meinen Fingern. Konnte meinen Abakus nicht finden. – Doresoom

Antwort

18

Es gibt ein paar Möglichkeiten, wie Sie dies tun können:

  • die Verwendung von colon operator:

    startValue = 1; 
    endValue = 10; 
    nElements = 20; 
    stepSize = (endValue-startValue)/(nElements-1); 
    A = startValue:stepSize:endValue; 
    
  • die linspace Funktion (wie durch Amro vorgeschlagen):

    startValue = 1; 
    endValue = 10; 
    nElements = 20; 
    A = linspace(startValue,endValue,nElements); 
    

Beachten Sie, dass die Anzahl der Elemente in dem resultierenden Arrays die Endpunkte enthält. In den obigen Beispielen ist der Unterschied zwischen Arrayelementwerten 9/19 oder ein wenig kleiner als0.5 (im Gegensatz zum Beispiel-Array in der Frage).

10

linspace erzeugt linear Abstand Vektoren:

>> A = linspace(1, 10, 20-1) 
ans = 
1 1.5 2 2.5 3 3.5 ... 9.5 10 
+0

n.b. 'linspace' Ausgaben * row * Vektoren; hier im Optimierungsland sind alle Vektoren Spaltenvektoren. in acht nehmen. – shabbychef

+2

das OP möchte ein Array mit 20 Elementen erstellen und du sprichst von einer vernachlässigbaren Optimierung (was vielleicht nicht einmal der Fall ist !!) – Amro

5

Einfacher Einstrich!

1:0.5:10; 

Output:

1 1.5 2 2.5 ... 9 9.5 10 

anzumerken, dass dies ein 19-Element-Vektor sein würde, nicht 20

+0

Nein, das wäre ein * 19-Element * Vektor. Es würde die Ganzzahlen 1 bis 10 (von denen es 10 gibt) zusammen mit den Mittelpunkten zwischen jedem Paar von Ganzzahlen (von denen es 9 gibt) enthalten. – gnovice

+0

@gnovice: Danke für die Köpfe hoch. – Zaid

Verwandte Themen