Know the number of row within a structure (struct)
20 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alberto Acri
am 10 Nov. 2022
Kommentiert: Alberto Acri
am 10 Nov. 2022
Hi! I have the following 'CODE' struct.

I would like to know if there is a code to determine the row number (present in 'Fields', for example 7) considering this as input:
folder = 'C:\Users\Alberto\Desktop\GLOBAL\DATA 4'

Thanks!
2 Kommentare
Stephen23
am 10 Nov. 2022
Bearbeitet: Stephen23
am 10 Nov. 2022
"(present in 'Fields', for example 7)"
The heading is misleading: the column headers are the fieldnames (e.g. "name", etc), the row numbers are indices of elements of the structure array (you can see there are 12 row numbers, exactly matching the number of elements in that 12x1 structure).
Note that "DATA 4" is listed in elements 7, 8, and 9 of that structure array.
Akzeptierte Antwort
Joseph Cheng
am 10 Nov. 2022
so you can use the function find() and contains(). in this example i am just searching the name entry but it should work with your folder instead.
abc = 'a'-1;
for ind = 1:10
CODE(ind).name = char(abc+ind);
end
foundRow = find(contains({CODE.name},'d'))
Where by doing {CODE.name} here it'll make each entry into a cell then find which one contains your desired text.
4 Kommentare
Stephen23
am 10 Nov. 2022
Bearbeitet: Stephen23
am 10 Nov. 2022
@Alberto Acri: note that Joseph Cheng just used the loop to create some fake data to demonstrate how the code works. Of course you will not use the loop and you will use your own data. Try this to match the names:
foundRows = find(matches({CODE.name},'d'))
or if you want to match the folders (as your question specifies):
folder = 'C:\Users\Alberto\Desktop\GLOBAL\DATA 4'
foundRows = find(matches({CODE.folder},folder))
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!