Azzera filtri
Azzera filtri

How do I find the std of a specific range of data?

2 visualizzazioni (ultimi 30 giorni)
I need to determine the standard deviation of the noise in a seismic signal Time domain. The data is in the form of time vs amplitude. I wish to find the standard deviation of the amplitude between time=0.1 and time=0.6. I need to know how to take the std of a range of the data set as opposed to the whole data set.
  3 Commenti
Rick Rosson
Rick Rosson il 2 Ago 2012
How many rows does the data set contain?
size(a,1)
Also, are the time steps uniformly spaced, or variably spaced? If uniform, what is the time increment?
at(2) - at(1)
Shawn
Shawn il 2 Ago 2012
Total rows of entire data set = 189857
Time steps are uniformly spaced at 9.06 micro seconds

Accedi per commentare.

Risposta accettata

Rick Rosson
Rick Rosson il 2 Ago 2012
Modificato: Rick Rosson il 2 Ago 2012
Please try:
tic;
data = load('a.mat'); % this form is faster than
% command syntax
t = data.A16(:,1); % eliminate unnecessary data copies
a = data.A16(:,2);
a = a - mean(a);
idx = (0.2 < t & t < 0.6); % this operation is time consuming
% compute once, use result twice
Q = a(idx);
W = t(idx);
elTime = toc; % elapsed time
HTH.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by