How do I create a regularly-spaced array of values in MATLAB?

How do I make an array that's defined with a start point, an end point, and a total array size? Something like an array that goes from 1 to 10 that's 20 elements long. For example, the array could look something like:

1 1.5 2 2.5 3 3.5 ... 
2

3 Answers

There are a couple of ways you can do this:

  • Using the colon operator:

    startValue = 1; endValue = 10; nElements = 20; stepSize = (endValue-startValue)/(nElements-1); A = startValue:stepSize:endValue; 
  • Using the linspace function (as suggested by Amro):

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

Keep in mind that the number of elements in the resulting arrays includes the end points. In the above examples, the difference between array element values will be 9/19, or a little less than 0.5 (unlike the sample array in the question).

linspace generates linearly spaced vectors:

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

Simple one-liner!

1:0.5:10; 

Output:

1 1.5 2 2.5 ... 9 9.5 10 

Note that this would be a 19-element vector, not 20.

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like