如何导入多个文件在MATLAB中,使用uigetfile和IMPORTDATA?(How to im

2019-10-20 04:11发布

我要选择多个文件,从文件导入数据和GUI程序中使用它们。
我使用来获取多个文件的代码工作perectly好:

[FileName,PathName,FilterIndex] = uigetfile('*.txt*','Study Files','MultiSelect','on')

Cols = size(FileName,2);
numfiles = Cols;


for i = 1:numfiles
    FileName(i)

    entirefile =fullfile(PathName,FileName(i))
end   

我的问题是,当我试图打开entire file 。 该方法我试图用作品与一个单一的文件,但不here.When代码的循环是:

for i = 1:numfiles
    FileName(i)

    entirefile =fullfile(PathName,FileName(i))

 A = [];
 fid = fopen(entirefile);

 tline = fgets(fid);
 while ischar(tline)
     parts = textscan(tline, '%f;');
     if numel(parts{1}) > 0
         A = [ A ; parts{:}' ];
      end
     tline = fgets(fid);

 end  
end  

使用的fopen第一输入误差必须char类型的文件名,或者double类型的文件标识符。

在多选(第14行)错误FID =的fopen(entirefile);

它也只给了我选择的第一个和最后一个文件,那么只有entirefile第一个选定的文件。

任何人对我怎么能解决这个问题有什么建议?

Answer 1:

问题是你如何访问单元阵列的元素FileName 。 如果用常规的括号访问它,输出将是一个元素单元阵列,和fullfile因此将输出的单元阵列,以及。 你需要用大括号这样访问它的FileName{i}

这应该工作:

[FileName,PathName,FilterIndex] = uigetfile('*.txt*','MultiSelect','on');

numfiles = size(FileName,2);

for ii = 1:numfiles
    FileName{ii}

    entirefile =fullfile(PathName,FileName{ii})

    fid = fopen(entirefile);
    % your code

    fclose(fid);

end  


文章来源: How to import multiple files in matlab, using uigetfile and importdata?