0

我有以下代码:

myFiles = {fullfile(working, 'file1'),fullfile(working, '*.txt'),...
          fullfile(folder1, 'controllerX'))};

switch (test)
  case 'test1'

       myFiles = {fullfile(working, folder1, '*.txt'),...
                 fullfile(working, folder1,folder2,'test.xml')};

 case 'test2'
          myFiles = {fullfile(working, folderX, '*.txt'),...
                 fullfile(working, folder1,folder2,'test.xml')}

end
for m = 1:numel(myFiles )
    file = dir(myFiles{m});
    verify(numel(file) == 1)
end

问题是在循环中仅对 case1 或 2 执行检查,即: numel(myFiles) = 在 case1 或 case 2 中找到的文件数,所以我第一次将值分配给 myFiles 时,不会保存值... . 我希望 myFiles = 第一次的文件数和 case 1 或 case 2 中的数字

4

1 回答 1

1

根据您的问题和评论,我认为您想将不同的文件(case test1,case test2)合并到初始单元格字符串数组中。

由于 myFiles 是一个行数组,您可以像这样连接它们:

switch(test)
case 'test1'
    myFiles = [myFiles, {fullfile..., fullfile...}];
case 'test2'
    myFiles = [myFiles, {fullfile..., fullfile...}];
end

如果在以后的某个时间点,您不能保证单元格数组的大小布局,而是使用联合,在这种情况下,双重条目会被过滤掉:

switch(test)
case 'test1'
    myFiles = union(myFiles, {fullfile..., fullfile...});
case 'test2'
    myFiles = union(myFiles, {fullfile..., fullfile...});
end
于 2013-09-25T12:41:01.123 回答