0

我正在编写一个程序,我正在使用listdlg. 我希望列表的每个选择都执行相同的操作,但它将它们保存在不同的部分(这样每个选项都将拥有自己的 - 比如说 - 带有文本文件的子文件夹,并且可以访问它们以用于另一个功能。

所以这是我的listdlg

global fileCount

F = listdlg('PromptString','Different types', 'SelectionMode',...
    'single', 'ListString',{E}, 'Name','Select a type','ListSize',[230 130]);

用户的输入在哪里{E},可能是 3 行或 6 行,他喜欢多少。

所以我想他是否使用第一行来询问输入,然后将其保存为第一种类型

 if F == 1
        [file,path] = uigetfile ('*.txt','Select your text files',...
            'MultiSelect','on');
        file = cellstr(file);   
            for k = 1:length(file)
                fileCount = length (file);                    
                z = importdata(fullfile(path, file{k}));
            end
   end

以下类型也是如此,这意味着如果他选择第 2 个,则文件将为第 2 个文件保存,但第一种类型的文件不会被覆盖。所以他现在有了Orange-10files;Pink-2files 和 Yellow-4files。

有没有办法我可以做到这一点?除了使用ifelseif他的每一个选择?

我希望我足够清楚!

谢谢!

4

1 回答 1

1

在调用中分配E为元胞数组,而不是将其作为元胞数组插入listdlg。我对您的最终目标并不完全清楚,但这将需要用户选择 E 的元素,打开用户选择的任何文件,并返回这些文件的路径和文件名以及添加的“颜色”文件夹:

E = {'Orange','Pink','Yellow'};
F = listdlg('PromptString','Different types', 'SelectionMode',...
    'single', 'ListString',E, 'Name','Select a type','ListSize',[230 130]);
[files,path] = uigetfile ('*.txt','Select your text files',...
            'MultiSelect','on');   
files = cellfun(@(x) fullfile(path,E{F},x),files,'UniformOutput',false);
于 2013-08-13T12:33:26.467 回答