2009-12-05 50 views
10

我該如何製作一個數組,它的起始點,終點和總數組大小?就像數組從1到10,長度爲20個元素。例如,陣列可以是這樣:如何在MATLAB中創建有規律間隔的數組值?

1 1.5 2 2.5 3 3.5 ... 
+0

在你給樣品矢量,從1在0.5步驟移動到10將給你一個19元素的矢量,而不是20. – gnovice 2009-12-06 03:17:48

+0

19 - 我指望着我的手指。找不到我的算盤。 – Doresoom 2009-12-07 14:46:39

回答

18

有幾個方法可以做到這一點:

  • 使用colon operator

    startValue = 1; 
    endValue = 10; 
    nElements = 20; 
    stepSize = (endValue-startValue)/(nElements-1); 
    A = startValue:stepSize:endValue; 
    
  • 使用linspace功能(由Amro所建議的):

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

記住,元件在所得陣列數包括端點。在上面的例子中,數組元素值之間的差異將是9/19,或者一點小於0.5(不像問題中的樣本數組)。

10

linspace產生線性間隔矢量:

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

n.b. 'linspace'輸出* row *向量;這裏在優化土地中,所有向量都是列向量。謹防。 – shabbychef 2009-12-08 22:59:54

+2

OP想要創建一個包含20個元素的數組,並且你正在談論一些可以忽略的優化(這可能不是這種情況!!) – Amro 2009-12-09 03:54:22

5

簡單的一行!

1:0.5:10; 

輸出:

1 1.5 2 2.5 ... 9 9.5 10 

注意,這將是一個19元素矢量,而不是20

+0

不,這將是一個* 19元素*向量。它將包括整數1到10(其中有10個),以及每對整數之間的中點(其中有9個整數)。 – gnovice 2009-12-06 18:24:26

+0

@gnovice:感謝您的支持。 – Zaid 2009-12-07 09:28:15

相關問題