Skipping a NaN in a loop
25 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi guys, currently doing a project for my module at uni and we are having to get averages of amplitude from seismic data from certain stations. Each file contains data from one station, with an array called 'seis'. Each column in the array represents a day, however some columns have NaN values (for some reason the seismometer wasn't recording). I can't edit the NaN or else it will throw off amplitude average, so I just want to skip that day (column) in my loop, however I cant seem to figure it out as every time I run the loop I get an error code saying 'Error using 'periodogram', expected x to be finite'
I know I wll probably need to use an 'if' statement, however I dont what to put in so that it skips the NaN columns. Here is the code:
Daily_mean_seis=[];
for i=1:1:240
[amp, freq] = periodogram(detrend(seis(:,i)),[],[],Fs);
F_freq=find(freq>=4&freq<=14);
F_amp=amp(F_freq);
av_amp=mean(F_amp);
Daily_mean_seis=[Daily_mean_seis;av_amp];
end
NaN is in column 209 if that helps, but I will be using the same code for other files where the NaN is in other columns.
I'm new to Matlab so any help you guys can give would be massively appreciated, thank you in advance!
0 comentarios
Respuestas (1)
KSSV
el 9 de Abr. de 2021
A = rand(5) ; % data for demo
A(:,2) = NaN ; % replace a column with NaN
for i = 1:5
if any(isnan(A(:,i)))
fprintf('%d column has NaN\n',i)
end
end
0 comentarios
Ver también
Categorías
Más información sobre Graphics Objects en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!