Есть ли в Excel функция, аналогичная функции linspace в Matlab?

#excel #matlab #linspace

#excel #matlab #linspace

Вопрос:

В Excel мне нужно линейно разделить количество ячеек ‘X’ от значения ‘A’ до значения ‘B’ в значении шага ‘i’. В идеале я хочу добиться того же результата, как если бы я использовал функцию linspace в Matlab.

Комментарии:

1. Если у вас есть Excel 365, вы можете использовать SEQUENCE

Ответ №1:

эта формула работает аналогично:

=SEQUENCE(rows,columns,start,step)

строки или столбцы — количество повторений в начале — начальное значение

пример: =SEQUENCE(,3,0,2) для 3 столбцов дает вам: 0 2 4 если вы хотите заполнить строки, просто укажите число в строках.

Надеюсь, это поможет!

Ответ №2:

Такой встроенной функции нет, но вы можете создать именованную пользовательскую функцию для ее выполнения с точно такой же схемой аргументов, используя новые функции LAMBDA и MAKEARRAY:

lambda(A, B, i , makearray(1, i, lambda(r, c, A (c-1)*(B-A)/(i-1))))

введите описание изображения здесь

Ответ №3:

Объединив ответы Тьяго и ттарчалы, мы можем создать простую LINSPACE функцию, которая просто переносится SEQUENCE и помещается в диспетчер имен для последующего использования:

Ввод функции в диспетчер имен (PNG)

Затем вы можете использовать ее так же, как и любую другую функцию Excel:

Использование новой LINSPACE функции (PNG)

Эта функция по умолчанию создаст вектор-столбец (который может TRANSPOSE быть общим):

 =LAMBDA(start, stop, num, SEQUENCE(num, 1, start, (stop - start)/(num - 1)))
  

Или, если вы предпочитаете, вектор строки:

 =LAMBDA(start, stop, num, SEQUENCE(1, num, start, (stop - start)/(num - 1)))
  

Ответ №4:

OP ссылается на linspace (afaik Matlab / Numpy linspace работает так же), поэтому ПОСЛЕДОВАТЕЛЬНОСТЬ не является ответом. ПОСЛЕДОВАТЕЛЬНОСТЬ принимает эти аргументы,

  • количество элементов (строк, столбцов),
  • начальное значение,
  • увеличение. Это похоже на arange() .

linspace() принимает эти аргументы:

  • начальное значение,
  • конечное значение,
  • количество элементов. Например, linspace(3,5,5) вернет [3, 3.5, 4, 4.5, 5]

Я не нашел шаблонного способа сделать это, так как спешил, но я нашел быстрый и грязный способ создания диапазона ячеек, дающего результат типа linspace. Приведенные ниже инструкции даны исходя из того, что начальные, конечные и количество элементов являются известными значениями, а диапазон представляет собой одну строку слева направо.

  1. Выберите ячейку, которая будет вашим начальным (крайним левым) значением, и введите значение.
  2. Переместите n ячеек вправо (где n = количество требуемых элементов) и введите конечное значение.
  3. Выделите ячейки от начального значения до конечного значения, включая пустые ячейки между ними.
  4. На вкладке «Главная» в группе лент «Редактирование» нажмите «Заполнить» и выберите «Серия …»
  5. Во всплывающем окне series вам нужно только установить флажок «Тренд», а затем нажать кнопку «ОК».

Чтобы получить результат в приведенном выше примере, вы должны ввести «3» в A1 и «5» в E1, затем выбрать ячейки A1: E1.