row deletion not working, can you help?

2 Ansichten (letzte 30 Tage)
david ocallaghan
david ocallaghan am 25 Apr. 2019
Beantwortet: david ocallaghan am 26 Apr. 2019
%I have the following fft calc;
freqMin = 10;
freqCap = 50;
te = (time>=5.0);
fs = (length(time(te))-1)/(max(time(te))-min(time(te))); % fs = 1000
NFFTt = length(Ty(te));
Yt = fft(Ty(te),NFFTt);
freqt = ((0:1/NFFTt:1-1/NFFTt)*fs).'; % freqt = 0, 1.9960, 3.9920, ..., 998.004
ampt = abs(Yt);
fftArrayt = [freqt,ampt]
idxFreqCapt = find(freqt > freqCap & freqt < freqMin) % returns this -> 0×1 empty double column vector
fftArrayt(idxFreqCapt,:) = [] % returns this ->
% fftArrayt =
%
% 1.0e+03 *
%
% 0 0.8824
% 0.0020 0.9291
% 0.0040 0.7940
% 0.0060 0.4000
% ...
%
% Is it because it's looking at the rows and not seeing the *1000 so ignoring the delete rule?
% Can you help me delete freqt below 10 and above 50?

Akzeptierte Antwort

david ocallaghan
david ocallaghan am 26 Apr. 2019
% As I wanted to keep 10 < fftArrayt < 50, I replaced the logic with...
idxFreqCapt = find(freqt > freqCap);
idxFreqMint = find(freqt < freqMin);
idxFreqt = [idxFreqMint;idxFreqCapt]
fftArrayt(idxFreqt,:) = [];

Weitere Antworten (0)

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Produkte


Version

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by