2

我正在尝试将目录中的所有文件保存为字符串数组,如下所示:

files = {'hello.gdf'; 'hello2.gdf'...; ... 'etc.gdf'}

由于我有很多目录,我想自动执行此操作。这是我的代码:

gdffiles = dir(fullfile('D:', 'subject', '01', '*.gdf'))
for i=1:size(gdffiles)
    files(i) = gdffiles(i).name;
end

我想指定files找到的 gdf ​​文件的名称,但我收到以下消息:

??? Subscripted assignment dimension mismatch.

Error in ==> getFiles at 3 files(i) = gdffiles(i).name;

我究竟做错了什么?谢谢!

4

3 回答 3

1

检查此解决方案

path       = fullfile('D:', 'subject', '01', '*.gdf');
files      = dir(path);
files      = struct2cell(files);
files      = files( 1, 1:end );
于 2013-01-20T16:45:44.953 回答
1

错误原因:

您尝试filesi第一个位置分配一个字符串(char数组)gdffiles(i).name。但是,您使用的是数组元素分配(圆括号())。因此,您会收到一个错误:您只能分配一个 charusing files(i)

可能的解决方案:

  1. 您应该分配给files使用花括号 - 因为files是一个cell数组:

    files{i} = gdffiles(i).name;
    
  2. 您可以通过以下方式在没有循环的情况下获得相同的结果:

    files = { gdffiles(:).name };
    
于 2013-01-20T16:47:19.807 回答
0

你试过这个:

ListOfAllFiles = ls('*.gif')

希望能帮助到你

于 2013-01-20T17:05:20.513 回答