开发者

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 l开发者_如何转开发ike:

1 1.5 2 2.5 3 3.5 ...


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


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜