10
A
回答
8
使用發電機:
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
這會工作的優良被4整除的長度,你可能會錯過了爲其他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)接受兩個參數。第一個參數是階段,下一個參數指定對稱性。寬度= 1給出右側鋸齒,寬度= 0給出左側鋸齒,寬度= 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. 三角形波形verilog
- 2. 創建三角形音頻波形
- 3. 將上三角形複製到列表中幾個矩陣的下三角形
- 4. 陣列的角度濾波器陣列
- 5. 讀2D陣列成三角形
- 6. Python Sierpinski三角形
- 7. 在三角形的三角形中繪製三角形
- 8. 三角形中的三角形CSS
- 9. 如何知道陣列中存在三角形三元組?
- 10. 塑造三角形和鋸齒波
- 11. 添加sin波到三角形網格
- 12. Python Numpy - 附加三個陣列形成矩陣或3D陣列
- 13. 三角:確定是否陣列包括三角形三重峯(Codility)
- 14. 塊三對角矩陣python
- 15. 將上三角形複製到蟒蛇矩陣中的下三角形
- 16. Python NumPy在對角線上方/下方連接2個三角形陣列
- 17. 從三角形的序列
- 18. uv mapping python OpenGL三角形
- 19. Python - 帕斯卡三角形
- 20. Python中的星號三角形
- 21. python中的三角形兄弟
- 22. python中的星號三角形
- 23. Python中三角形的用戶輸入
- 24. python中的三角形數字
- 25. 獲取三角形內的三角形?
- 26. 找到線陣列中的所有三角形(Delaunay圖)
- 27. 三角形陣列中的Java偏置隨機數
- 28. 使用scipy.sparse的三角形塊矩陣
- 29. 發現一個矩陣是上三角形,下三角形還是對角線
- 30. 爲每個三角形計算矩陣與地形的角度
您是否需要安排數據結構或繪製圖形表示呢? –
只需要製作一個採用該形狀的100個數據條目的數組。不需要圖形表示! – 8765674
維基百科有三種不同的公式可以用來計算三角波:http://en.wikipedia.org/wiki/Triangle_wave#Definitions可能有更快的方法,但實現這些方程之一應該是一個不錯的起點。 –