How can I cut a vector getting only a specific part of it?
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Danilo Ambrosio
il 7 Apr 2017
Commentato: Image Analyst
il 8 Apr 2017
I'm trying to cut a Force signal imported as a column oriented vector because the "drilling part" ( this signal was obtained from a drilling operation) is really short. The part that I'm looking for assume values clearly higher than the "noise". I need it for more than one signal and each signal was obtained in a different time acquisition so I need a generic way to apply this cut in each situation. I was thinking about the possibility to use a for cycle or something like that (I'm not an expert in C++ code) to catch the signal part that I'm looking for in order to extend this code for each file. How can I do it?
0 Commenti
Risposta accettata
Image Analyst
il 7 Apr 2017
No C++ needed - you can use MATLAB! And even do it in fewer lines of code. You can just threshold and extract. Lets say that the noise have values around 1-10, and the "good" signal you want to extract has values around 100-1000. So you can set a threshold of 50 or so and then extract only those elements (shortening the array),
goodIndexes = signal > threshold;
goodSignal = signal(goodIndexes);
or you can mask the noise elements to zero (keeping the same number of elements)
goodIndexes = signal > threshold;
maskedSignal = signal; % Initialize - make a copy;
maskedSignal(~goodIndexes) = 0; % Anything NOT a good signal is set to zero, or whatever value you want.
2 Commenti
Image Analyst
il 8 Apr 2017
Do the same thing to the time vector with the same indexes:
timeVector = timeVector(goodIndexes);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su National Instruments Frame Grabbers in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!