Как мне создать равномерно распределенный массив значений в MATLAB? - PullRequest
10 голосов
/ 06 декабря 2009

Как создать массив, который определен с начальной точкой, конечной точкой и общим размером массива? Что-то вроде массива, который состоит из 1 до 10, длиной 20 элементов. Например, массив может выглядеть примерно так:

1 1.5 2 2.5 3 3.5 ...

Ответы [ 3 ]

18 голосов
/ 06 декабря 2009

Есть несколько способов сделать это:

  • Использование оператора двоеточия :

    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 голосов
/ 06 декабря 2009

linspace генерирует линейно разнесенные векторы:

>>  A = linspace(1, 10, 20-1)
ans =
1 1.5 2 2.5 3 3.5 ... 9.5 10
5 голосов
/ 06 декабря 2009

Простой однострочник!

1:0.5:10;

Выход:

1 1.5 2 2.5 ... 9 9.5 10

Обратите внимание, что это будет вектор из 19 элементов, а не 20.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...