Matlab giải pháp cho việc tìm kiếm vị trí cụ thể khi một sự thay đổi dấu hiệu xảy ra bên trong vector

A

Andrew8611

Guest
Có ai biết một lệnh trong Matlab cho phép tôi tìm thấy những vị trí cụ thể khi một sự thay đổi dấu hiệu xảy ra bên trong một vector? Ví dụ, tôi đã viết t = 0:0.01:10000 và sau đó tôi đã viết y = sin (t), lệnh cho phép tôi nhìn thấy vị trí trên y vector nó thay đổi từ tích cực đến tiêu cực, từ âm sang dương??? ?
 
Tôi không biết liệu có là một lệnh để tìm vị trí mà dấu hiệu thay đổi. Nhưng chúng ta có thể viết rằng chức năng chính mình. Tôi nghĩ rằng đó không phải là phức tạp. chúng ta có thể kiểm tra mỗi y trong vòng một, nếu y (n)> 0 & & y (n +1)
 
Có thể ví dụ nhỏ này sẽ giúp bạn. Nó tạo ra một quá trình quét tần số sinewave, và sau đó âm mưu và tabulates tích cực của dạng sóng, độ dốc không vượt điểm.
Code:
% Tần số quét F0 = 10;% bắt đầu tần số, Hertz F1 = 100;% ngừng tần số, Hertz T = 0,5% thời gian, giây FS = 1000;% tỷ lệ mẫu, Hertz N = tròn (T * FS); t = T * (0: N-1) / (N-1); y = sin (2 * pi * (F0 + (F1 - F0) / 2 .* t / T) .* t); subplot ( 2,1,1), plot (t, y); xlabel ('giây');%% không tích cực-độ dốc qua máy dò z = ((y> 0), (circshift ((y> 0), 1))), z (1) = 0; subplot (2,1,2), plot (t, z); xlabel ('giây');%% Tìm vị trí của các số không vượt điểm crossing_points = tìm ( z);
Để phát hiện cả hai giao cắt tích cực và tiêu cực, thay đổi dòng logic này: [color = màu nâu] z = xor ((y> 0), circshift ((y> 0), 1)); z (1) = 0; [/color] Tôi thích sử dụng phương pháp mảng như thế bởi vì MATLAB thực hiện nhanh hơn nhiều so với một vòng lặp "cho".
 
hi tôi đang cần để mô phỏng các máy dò không qua với sinewave như là đầu vào .. và sau đó tan lẫn kết quả với sóng sin .... bất kỳ một có thể cung cấp cho tôi mã cho điều này ....
 

Welcome to EDABoard.com

Sponsor

Back
Top