How can I cut a vector getting only a specific part of it?
18 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Image Analyst
2017-4-7
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 个评论
Image Analyst
2017-4-8
Do the same thing to the time vector with the same indexes:
timeVector = timeVector(goodIndexes);
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!