8

linspacePythonの標準ライブラリにはmatlabのような関数がありますか?

そうでない場合、外部パッケージをインストールせずにそれを実装する簡単な方法はありますか?

これは、MATLAB用語でのlinspaceの迅速で簡単な定義です。

ノート

リンクで定義されている「ベクトル結果」は必要ありません。リストで問題ありません。

4

4 に答える 4

12

いいえ、そうではありません。独自に作成することもできますが(難しいことではありません)、Pythonを使用してmatlabの機能の一部を実行している場合はnumpy、をインストールする必要がありますnumpy.linspace

Matlabユーザー向けのNumPyが参考になるかもしれません。

于 2012-09-08T21:02:26.770 に答える
11

これを実装する最も簡単な方法は、ジェネレーター関数です。

from __future__ import division

def linspace(start, stop, n):
    if n == 1:
        yield stop
        return
    h = (stop - start) / (n - 1)
    for i in range(n):
        yield start + h * i

使用例:

>>> list(linspace(1, 3, 5))
[1.0, 1.5, 2.0, 2.5, 3.0]

numpy.linspace()とは言うものの、数値配列を便利に操作するための関数や他の多くの機能を提供するNumPyの使用を確実に検討する必要があります。

于 2012-09-08T21:02:38.797 に答える
6

これを行う関数を定義できます。

def linspace(a, b, n=100):
    if n < 2:
        return b
    diff = (float(b) - a)/(n - 1)
    return [diff * i + a  for i in range(n)]
于 2012-09-08T21:08:24.420 に答える
2

間隔が1より大きい限り、これは次のMATLAB関数呼び出しに相当するPythonです。linspace(start,stop,spacing)

start = 5
stop = 6
spacing = int(11)
linspace = [start + float(x)/(spacing-1)*(stop-start) for x in range(spacing)]
于 2016-05-19T17:53:36.097 に答える