假设我使用
获取目录列表files = dir(mypattern);
现在我在files
中有10000x1结构。
如果我这样做
filenames = {files.name};
我将在filenames
中拥有1x10000单元格。
即。转置方向。
如何在此处一步从files
获取10000x1单元格?
答案 0 :(得分:3)
怎么样
filenames = {files.name}.';
答案 1 :(得分:2)
只是为了解释发生了什么。 files.name
是Comma-Separated List,其行为类似{files(1).name,files(2).name,files(3).name}
(简化为三个元素),因为它用逗号分隔,而不是用分号分隔。没有分号分隔列表或类似名称,您必须转置或重塑以获得所需的尺寸。
对于向量,Shai的解决方案是完美的,reshape
是一个简单的解决方案,也适用于更多维度的数据结构:
files=struct('names',{'a','b';'c','d'}); %example data 2x2
reshape({files.names},size(files));
答案 2 :(得分:0)
另一种方法是:
filenames = arrayfun(@(x) x.name, dir(mypattern), 'uni',0);