Find with an indexed struc

2 views (last 30 days)
AwedBy Matlab
AwedBy Matlab on 31 Jul 2014
Commented: AwedBy Matlab on 1 Aug 2014
I have a struc M whose size is (88,1)
If for instance I type M(46,1).acc I get ans = 0
I typed find(M(:,1).acc==0) to find the rows where the acc field is zero, but got the error Error using == : Too many input arguments.
Any help? Thanks!!

Accepted Answer

Image Analyst
Image Analyst on 31 Jul 2014
Try
find([M(:,1).acc]==0)

More Answers (1)

Ben11
Ben11 on 31 Jul 2014
Edited: Ben11 on 31 Jul 2014
It might not be the most elegant but I think it would solve your problem
Indices = cellfun(@(x) x == 0,struct2cell(M)) % you get a logical array where 0's have an index of 1
there is probably a more clever way to do it though.
  3 Comments
Ben11
Ben11 on 31 Jul 2014
You're welcome! I prefer Image Analyst's answer though :)
AwedBy Matlab
AwedBy Matlab on 1 Aug 2014
me too in this case :p

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!