Как создать регулярный массив значений в MATLAB?

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

1 1.5 2 2.5 3 3.5 ...

Ответ 1

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

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

    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 (в отличие от массива выборок в вопросе).

Ответ 2

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

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

Ответ 3

Простой однострочный вкладыш!

1:0.5:10;

Вывод:

1 1.5 2 2.5 ... 9 9.5 10

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