Trong Python NumPy, có một chức năng unwrap rằng:Đối diện của numpy.unwrap
Unwrap giai đoạn radian p bằng cách thay đổi tuyệt đối nhảy lớn hơn tạm ngừng đến 2 * pi bổ sung của họ dọc theo trục nhất định.
Bây giờ, tôi muốn thực hiện chức năng ngược lại. Làm cách nào để tôi có thể quấn một loạt các giai đoạn? Ví dụ. làm thế nào để chuyển đổi tất cả các góc để hạn chế chúng giữa-π và π?
Cách hiển nhiên sẽ là để làm một cái gì đó như:
for i, a in enumerate(phases):
while a < pi:
a += 2 * pi
while a > pi:
a -= 2 * pi
phases[i] = a
nhưng là có một/cách nhanh hơn đơn giản hơn?
Tôi không nhận ra rằng tôi có thể sử dụng toán tử% với các giá trị dấu phẩy động. Nhưng tại sao bạn lại thêm π trước khi thực hiện mô đun? –
vì điều đó là cần thiết nếu bạn cần kết quả nằm giữa (-np.pi, np.pi) thay vì (0,2 * np.pi). Nếu bạn không thêm nó, nhưng chỉ trừ đi, 0 sẽ được ánh xạ vào -> -np.pi mà không chính xác –
Điều đó hiển nhiên! Bây giờ tôi cảm thấy ngu ngốc ...Tôi đã không nhận ra nó bởi vì tôi chỉ quan tâm đến giai đoạn tương đối, và không chú ý đến giai đoạn tuyệt đối. –