Filter a structure by a value of a field
12 次查看(过去 30 天)
显示 更早的评论
Hi All,
I have data in the following structure called "recEv".

.
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 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!