Filter a structure by a value of a field
조회 수: 17 (최근 30일)
이전 댓글 표시
Hi All,
I have data in the following structure called "recEv".
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/193152/image.png)
.
I would like to find the values of another matrix called cluster_class(size: n x 2) that fall between the first and last eegoffset number corresponding to each unique list value. So, for example, I would like to find the values in the cluster class matrix that fall between (225035 - 228285), (323831 - 327527), (424105 - 429244), (531709 - 533974) etc. I would like my output matrix to stay the size (n x 2).
I've tried putting the unique list values into a variable and looping through recEv, however I have been largely unsuccessful. Any help would be much appreciated!!
Thank you,
PK
댓글 수: 2
Jan
2018년 8월 4일
Please post some relevant inputs. It is not clear if this is a struct array or a scalar struct containing vectors. You did not mention, what the data of the matrix cluster_class are and what you want as output exactly.
답변 (1개)
Bob Thompson
2018년 8월 6일
Hmmm, just gonna wing it and see if this is correct.
for k = 1:max(recEV(:).list);
special = cluster_class(cluster_class(:,2)>=min(recEV(:).eegoffset(recEV(:).list==k))&cluster_class(:,2)<=max(recEV(:).eegoffset(recEV(:).list==k)),:);
end
Basically, it just loops through each value of list and attempts to use logic indexing to leave you with cluster_class rows which have a second value that falls within the range of eegoffset. Probably won't work first try, but thought it was kind of fun to make.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Identification에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!