如何将Matlab上的多个答案合并到一个列表中?

如何将Matlab上的多个答案合并到一个列表中?,matlab,Matlab,我相信这是显而易见的,但我无法在互联网上找到解决方案 在Matlab中执行此操作时: > list = dir('some_directory'); > list list = 3×1 struct array with fields: name folder date bytes isdir datenum 我想将所有文件名存储在列表中。如果我调用list.name,我只会得到多个答案 > list.name ans = some_file_

我相信这是显而易见的,但我无法在互联网上找到解决方案

在Matlab中执行此操作时:

> list = dir('some_directory');
> list

list = 
  3×1 struct array with fields:
  name
  folder
  date
  bytes
  isdir
  datenum
我想将所有文件名存储在列表中。如果我调用list.name,我只会得到多个答案

> list.name
ans =
some_file_1.mat

ans =
some_file_2.mat

ans =
some_file_3.mat
我试过了,但没用

> dirlist = list.name
ans =
some_file_1.mat
> dirlist = [list.name]
ans =
some_file_1.matsome_file_2.matsome_file_3.mat
然后我尝试了这个,但没有成功

> dirlist = list.name
ans =
some_file_1.mat
> dirlist = [list.name]
ans =
some_file_1.matsome_file_2.matsome_file_3.mat

您可以将列表存储在单元格中:

dirlist = {list.name};
然后,您可以这样调用每个条目:

dirlist{1};
...
dirlist{20};
etc..
编辑: 或者,您也可以访问初始结构的各个元素:

list(1).name;
...
list(20).name;
etc...
甚至可以将变量
name
保存在仅包含此变量的新结构中:

dirlist = struct('name',{list.name});

您可以将列表存储在单元格中:

dirlist = {list.name};
然后,您可以这样调用每个条目:

dirlist{1};
...
dirlist{20};
etc..
编辑: 或者,您也可以访问初始结构的各个元素:

list(1).name;
...
list(20).name;
etc...
甚至可以将变量
name
保存在仅包含此变量的新结构中:

dirlist = struct('name',{list.name});

解决了我的问题,但我仍然觉得不明白为什么Matlab中列表和单元格大小写的不同行为变量
list
在本例中是一种结构。如果要访问结构的不同元素,则需要调用结构的条目。因此,如果您想访问条目一:
list(1)。name
将生成第一个条目。因此,您可以使用它而不是单元格,甚至可以将name的结构保存在一个新结构中,而不使用不需要的字段。你对向量的尝试不起作用,因为字符串的长度不同,不能聚合成矩阵解决了我的问题,但我仍然觉得我不明白为什么Matlab中列表和单元格大小写的不同行为变量
list
在这种情况下是一种结构。如果要访问结构的不同元素,则需要调用结构的条目。因此,如果您想访问条目一:
list(1)。name
将生成第一个条目。因此,您可以使用它而不是单元格,甚至可以将name的结构保存在一个新结构中,而不使用不需要的字段。使用向量所做的尝试不起作用,因为字符串的长度不同,无法聚合到矩阵中