Info

此问题已关闭。 请重新打开它进行编辑或回答。

Logical Array and filtering erroneous points

1 次查看(过去 30 天)
Andrew
Andrew 2017-10-4
关闭: Andrew 2017-10-5
I have a many logical arrays, like the example in the image. I am using bins to extract a certain section of the data for further analysis. Around 0.2x10^4 there is a short section of points that are 1(s). If the section of 1(s) is not longer than 60 continuous 1(s), then I don't want to use that data. I have tried filters, but it does not seem to get all the points. My code is below, and very generic. Are there any ideas on how to ignore these points?
for i = 1:numel(thefiles)
filename = thefiles(i).name;
data{1,i} = open(filename);
%set bins
N_edges = [625 675 1100 1350 1650];
M_edges = [0 250 950 1600 2150 2700];
N_bins = discretize(data{1,i}.N.signals.values,N_edges);
M_bins = discretize(data{1,i}.M.signals.values,M_edges);
%%Assign Bins
idle = (N_bins ==1 & M_bins ==1);
A25 = N_bins ==2 & M_bins ==2;
B25 = N_bins ==3 & M_bins ==2;
C25 = N_bins ==4 & M_bins ==2;
end
  1 个评论
Andrew
Andrew 2017-10-5
编辑:Andrew 2017-10-5
I used a movmean(A25,60). Then used another logical A25 = (A25==1). This basically did what I was looking for.
Thanks for anyone who looked at this.

回答(0 个)

此问题已关闭。

产品

Community Treasure Hunt

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

Start Hunting!

Translated by