Filter a structure by a value of a field
23 ビュー (過去 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!