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 = 初回のファイル数とケース 1 またはケース 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

後で cell 配列のサイズ レイアウトを保証できない場合は、ユニオンを使用してください。この場合、二重のエントリは除外されます。

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