I'm inexperienced with MATLAB, so sorry for the newbie question:
I've got a large vector (905350 elements) storing a whole bunch of data in it. I have the standard deviation and mean, and now I want to cut out all the data points that are above/below one standard deviation from the mean. I just have no clue how. From what I gather I have to make a double loop of some sort?
It's like: mean-std < data i want < mean + std
should work. See FIND for more details. The FIND command is being used implicitly in the above code.
You can simply use the Element-wise logical AND:
Also, knowing that:
|x|<c iff -c<x<c
, you can combine both into one as:Taking A as your original vector, and B as the final one:
If the data is in variable
A
, with the mean stored inmeanA
and the standard deviation stored instdA
, then the following will extract the data you want while maintaining the original order of the data values:Here are some helpful documentation links that touch on the concepts used above: logical operators, matrix indexing.