MATLAB Struct Access

gat*_*ack 1 matlab

创建了一个MATLAB结构:

filenameSubstring='C:\Data\**/*.json';
filenames = dir(filenameSubstring);
Run Code Online (Sandbox Code Playgroud)

试图评估平均值是不成功的:

sizemean = mean(filenames.size);
Run Code Online (Sandbox Code Playgroud)

尝试创建数组并不成功,因为它只返回一个值:

test=(filenames(:).bytes)
Run Code Online (Sandbox Code Playgroud)

我可以使用for循环访问每个元素:

for i= 1:size(filenames,1)
    test(i)=filenames(i).bytes;
end
Run Code Online (Sandbox Code Playgroud)

是否有一个简洁的单行,可以将所有.bytes元素移动到一个数组中进行进一步评估?

Cri*_*ngo 5

是:

[filenames.bytes]
Run Code Online (Sandbox Code Playgroud)

filename.bytes生成以逗号分隔的值列表,相当于filename(1).byes, filename(2).bytes, filename(3).bytes, ....方括号将这些连接成一个数组.因此上面是相同的

[filename(1).byes, filename(2).bytes, filename(3).bytes, ... ]
Run Code Online (Sandbox Code Playgroud)