Indexing in fields of a struct

Hi, in the attached .MAT file, I have a struct partitionsInfo in which I want to read partitionsInfo.frames using indexing to find which section includes a particular number. For example partitionsInfo(1).frames contains number 1 as well as partitionsInfo(2).frames. Loops are not what I am looking for as currently I am working on test data and final data will be quite large already.
Another case would be where one particular number, say 4, is a part of 3 partitionsInfo.frames so the solution should give index for those 3 rows and for the test of the rows give zeros.
--Waqas

 Accepted Answer

James Tursa
James Tursa on 7 Aug 2020
Edited: James Tursa on 7 Aug 2020
Loops are what is needed here, but you can hide the loops behind function calls if you want. E.g.,
k = 3; % the number you are trying to find
x = arrayfun(@(i)any(partitionsInfo(i).frames==k),1:numel(partitionsInfo)); % logical indexes of elements you want
result = partitionsInfo(x);

1 Comment

I was actually trying something similar initially with structfun but was unsucessful. Thank you for the eligant solution.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 7 Aug 2020

Commented:

on 8 Aug 2020

Community Treasure Hunt

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

Start Hunting!