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)])
Citation pour cette source
Dirk-Jan Kroon (2024). structfind (https://www.mathworks.com/matlabcentral/fileexchange/29808-structfind), MATLAB Central File Exchange. Extrait(e) le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Remerciements
A inspiré : "contains" with multiple conditions, StructFind
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.1.0.0 | Added solutions for problem cases by comment : Jos (10584) |
||
1.0.0.0 |