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

 Risposta accettata

James Tursa
James Tursa il 7 Ago 2020
Modificato: James Tursa il 7 Ago 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 Commento

waqas
waqas il 8 Ago 2020
I was actually trying something similar initially with structfun but was unsucessful. Thank you for the eligant solution.

Accedi per commentare.

Più risposte (0)

Richiesto:

il 7 Ago 2020

Commentato:

il 8 Ago 2020

Community Treasure Hunt

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

Start Hunting!

Translated by