How to find the maximum index in a struct

3 次查看(过去 30 天)
I need to read in an unknown number of data files from the current working directory. Each data file has a filename that contains the word "metrics".
To do this, I am using the following to read these into a struct:
>> F = dir("*metrics*")
This works. I get the following:
F =
3×1 struct array with fields:
name
folder
date
bytes
isdir
datenum
I happen to know that in this test directory, there are 3 files that match this pattern, and in the above return I can see that F is a 3x1 struct array.
Accessing F(1).name gives the name of the first file, F(2).name gives the name of the second and so on.
The problem I have is that in the live directory (not the test one) there can be an unknown number of files, and I need to process each one of them in turn.
I though that I could use 'size' to get the dimensions of the struct array (as returned in the above), but I get this instead:
>> size F
ans =
1 1
So, the quesiton is, how do I figure out how many filename "entries" there are in this struct F, so that I can use a loop to process each index in turn?
I was planning on doing something like this:
for index = 1:numberOfFiles
myFileProcess(F(index))
end
Please note that I am not asking about how to access individual elements of the entries in the struct (like b = F(2).bytes) - I need to know how many things there are in this struct (i.e filenames returned from dir).
Thanks!
  1 个评论
Stephen23
Stephen23 2021-4-23
Note that
size F
is equivalent to
size('F')
which measures the size of the scalar character 'F' (note that strings are colored purple). Compare:
size(F) % what you should do

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2021-4-23
编辑:Star Strider 2021-4-23
Try something like this instead:
Fsize = size(F)
The function form is likely to give the result you want.
EDIT — (23 Apr 2021 at 4:30)
If you only want to know how many files there are in ‘F’:
Flen = numel(F)
works.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by