10
A
答えて
8
ジェネレータを使用します。これは、4で割り切れる長さのために正常に動作します
def triangle(length, amplitude):
section = length // 4
for direction in (1, -1):
for i in range(section):
yield i * (amplitude/section) * direction
for i in range(section):
yield (amplitude - (i * (amplitude/section))) * direction
、あなたは他のために3個までの値を見逃す可能性長さ
>>> list(triangle(100, 0.5))
[0.0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.48, 0.46, 0.44, 0.42, 0.4, 0.38, 0.36, 0.33999999999999997, 0.32, 0.3, 0.28, 0.26, 0.24, 0.21999999999999997, 0.2, 0.18, 0.15999999999999998, 0.14, 0.12, 0.09999999999999998, 0.08000000000000002, 0.06, 0.03999999999999998, 0.020000000000000018, -0.0, -0.02, -0.04, -0.06, -0.08, -0.1, -0.12, -0.14, -0.16, -0.18, -0.2, -0.22, -0.24, -0.26, -0.28, -0.3, -0.32, -0.34, -0.36, -0.38, -0.4, -0.42, -0.44, -0.46, -0.48, -0.5, -0.48, -0.46, -0.44, -0.42, -0.4, -0.38, -0.36, -0.33999999999999997, -0.32, -0.3, -0.28, -0.26, -0.24, -0.21999999999999997, -0.2, -0.18, -0.15999999999999998, -0.14, -0.12, -0.09999999999999998, -0.08000000000000002, -0.06, -0.03999999999999998, -0.020000000000000018]
1
numpy fromiterメソッドとともにイテレータジェネレータを使用できます。
import numpy
def trigen(n, amp):
y = 0
x = 0
s = amp/(n/4)
while x < n:
yield y
y += s
if abs(y) > amp:
s *= -1
x += 1
a = numpy.fromiter(trigen(100, 0.5), "d")
ここで、方形波の配列があります。
4
numpyの使用には:
def triangle2(length, amplitude):
section = length // 4
x = np.linspace(0, amplitude, section+1)
mx = -x
return np.r_[x, x[-2::-1], mx[1:], mx[-2:0:-1]]
2
三角形は、鋸歯状の絶対値です。
from scipy import signal
time=np.arange(0,1,0.001)
freq=3
tri=np.abs(signal.sawtooth(2 * np.pi * freq * time))
4
三角波を生成する最も簡単な方法は、signal.sawtoothを使用する方法です。 signal.sawtooth(phi、width)は2つの引数を受け取ることに注意してください。最初の引数はフェーズ、次の引数は対称を指定します。 width = 1は右側の鋸歯を与え、width = 0は左側の鋸歯を与え、width = 0.5は対称の三角形を与える。楽しい!
from scipy import signal
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(0, 1, 500)
triangle = signal.sawtooth(2 * np.pi * 5 * t, 0.5)
plt.plot(t, triangle)
関連する問題
- 1. python行列の上三角形から下三角形にコピー
- 2. C++の正弦波から三角波を作成する
- 3. テンソルの下三角にパッキング配列
- 4. パスカルの三角形 - 型エラー
- 5. python、三角関数を二次元配列にプロット
- 6. 非対称三角波の閉じた形式ですか?
- 7. バイナリ配列で直角三角形を見つける
- 8. Pythonの三角形のパターン
- 9. WPF3Dの三角勾配
- 10. Modelicaで三角波関数を生成する問題
- 11. 角型JSオブジェクトと配列
- 12. 角2と型スクリプトプロミスリターン配列
- 13. uvマッピングpython OpenGL三角形
- 14. Python二等辺三角形
- 15. python patsy三角スプラインでのインターセプト用語
- 16. ブロック三角対角行列の作成
- 17. 行列の配列を行列の三つ組の配列にする/ Python Pandas
- 18. は、発振器又は異なる波形(三角と四角)と
- 19. 角型配列プッシュ固有のインデックス
- 20. 三角形のギザギザの配列を逆にする方法は?
- 21. 三角形の矢印のCSS勾配
- 22. どのように三角波、特に周波数を操作できますか?
- 23. 文字列の長さで三角形配列をソートするPHP
- 24. 配列内のオブジェクトに配列を変換するには - 角型とJavaScript型
- 25. Nativescript角型動的グリッドレイアウトから配列
- 26. httpポストを持つ角型配列
- 27. VBA:ワード周波数配列
- 28. 2D配列に三角形を描画する方法(Java)
- 29. トリッキー三角法 - matlabの定義済みメッシュ内の波の開始位置
- 30. 三角法三角法(ActionScript 3)
データ構造を整理するか、グラフィック表現を作成するだけですか? –
その形をとる100個のデータエントリの配列を作成するだけで済みます。グラフィック表現は必要ありません! – 8765674
Wikipediaには、三角波を計算するために使用できる3つの異なる式があります:http://en.wikipedia.org/wiki/Triangle_wave#Definitionsより速い方法があるかもしれませんが、これらの式の1つを実装するのはいい出発点です。 –