matlab struct的使用

Struct在处理多样数据时非常有用。例如在命令行输入a=dir,可以看到返回的a就是一个struct,其中包括了很多域,例如name,bytes,isdir等。
1)使用a.name, a.bytes等查看当前路径下文件的情况;
2)编写一个循环代码,遍历a中每一个文件,如果这个文件不是一个文件夹,则输出如下文本“File name contains X bytes”。
运行结果可参考下例:
HW4.doc contains 127488 bytes
Pro1.m contains 58 bytes
cellPrc.asv contains 161 bytes
cellPrc.m contains 198 bytes
coinTest.asv contains 374 bytes
coinTest.m contains 382 bytes
structPrc.asv contains 79 bytes
structPrc.m contains 151 bytes
~$HW4.doc contains 162 bytes
~WRL0001.tmp contains 128000bytes

我的问题是:我用a.name得出的结果是一个一个分开的 我怎么可以把它的结果合成一个(在C语言中和数组相似的)东西,然后我就可以用循环将a.name中的第一个放到第一句上,以此类推。
而且我用a.name时,他的文件名多出来个‘.’和'..' 这又是怎么回事
我的做法是将a.name中的数据放到一个cell中 可是我的结果中文件名上有单引号‘ ’ X的数字上有[ ]。希望有人帮帮忙 谢谢指点

arrayfun(@(file)~file.isdir && fprintf('%s contains %d bytes\n', file.name, file.bytes), dir);

 或

a = dir;
for i = 1:numel(a)
    if ~a(i).isdir
        fprintf('%s contains %d bytes\n', a(i).name, a(i).bytes);
    end
end

温馨提示:答案为网友推荐,仅供参考