structfind
StructFind, Find the index of a certain string or value in a struct
index=structfind(a,field,value)
inputs,
a : A Matlab struct, for example a(1).name='red', a(2).name='blue';
field : The name of the field which is searched, for example 'name'
value : The search value, for example 'blue'
outputs,
index : The Struct index which match the search
Example,
a(1).name='blue';
a(1).index=0;
a(1).val='g';
a(2).name='red';
a(2).index=1;
a(2).val=[1 0];
a(3).name='green';
a(3).index=2;
a(3).val='g';
a(4).name='black';
a(4).index=3;
a(4).val=[0 0 0];
a(5).name='yellow';
a(5).index=NaN;
a(5).val=[0 1 1];
a(6).name='orange';
a(6).index=[];
a(6).val=[1 1 0];
a(7).name='brown';
a(7).index=6;
a(7).val={'12'};
a(8).name='white';
a(8).index=7;
a(8).val.x=1;
a(8).name='purple';
a(8).index=8;
a(8).val.child.value=2;
index=structfind(a,'name','red');
disp(['index : ' num2str(index)])
index=structfind(a,'index',1);
disp(['index : ' num2str(index)])
index=structfind(a,'val',[0 0 0]);
disp(['index : ' num2str(index)])
index=structfind(a,'val','g');
disp(['index : ' num2str(index)])
index=structfind(a,'index',NaN);
disp(['index : ' num2str(index)])
index=structfind(a,'index',[]);
disp(['index : ' num2str(index)])
index=structfind(a,'val',{'12'});
disp(['index : ' num2str(index)])
index=structfind(a,'val.child.value',2);
disp(['index : ' num2str(index)])
Cite As
Dirk-Jan Kroon (2024). structfind (https://www.mathworks.com/matlabcentral/fileexchange/29808-structfind), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired: "contains" with multiple conditions, StructFind
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.