How to extract data from an array
1 回表示 (過去 30 日間)
古いコメントを表示
Peter Darrouj
2022 年 3 月 11 日
回答済み: Benjamin Thompson
2022 年 3 月 11 日
Hello. I have a signal with over 10mil data points. Whenever my signal crosses a certain threshhold i want to extract x numbers of point before and x numbers of point after it hit the threshhold.
IsEvent = true;
peakthreshhold = 120;
for i = 1:1:length(sig)
if (sig(i) >= peakthreshhold && IsEvent)
signal= (sig(i-20000):1:sig(i+50000));
disp(signal)
IsEvent = false;
end
end
so basically i wanted to extract 20000 points before it hit sig(i) to 50000 after it hit sig(i), so i get a new array with 70000 points extracted from sig(i).
If i run it now, i get 15 points
0 件のコメント
採用された回答
Benjamin Thompson
2022 年 3 月 11 日
Use
signal= sig(i-20000:1:i+50000);
And you probably need checks in case i < 20000 or i > (end - 50000) as special cases.
0 件のコメント
その他の回答 (1 件)
KSSV
2022 年 3 月 11 日
Let x be your signal and val be yout threshold.
val = 50000 ;
tol = 10^-3 ;
idx = find(abs(sig-val)<=tol) ; % this gives the index of your threshold
v1 = sig(1:idx) ;
v2 = sig(idx+1:end) ;
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!