我的代码有两部分。第一部分是这样编程的自动文件打开:
fichierref = 'H:\MATLAB\Archive_08112012';
files = dir(fullfile(fichierref, '*.txt'));
numberOfFiles = numel(files);
delimiterIn = ' ';
headerlinesIn = 11;
for d = 1:numberOfFiles
filenames(d) = cellstr(files(d).name);
end
for i=1:numberOfFiles
data = importdata(fullfile(fichierref,filenames{i}),delimiterIn,headerlinesIn);
end
稍后,我希望用户选择他的文件进行分析。但是这有一个问题。我输入的行如下:
reference = warndlg('Choose the files from which you want to know the magnetic field');
uiwait(reference);
filenames = cellstr(uigetfile('./*.txt','MultiSelect', 'on'));
numberOfFiles = numel(filenames);
delimiterIn = ' ';
headerlinesIn = 11;
在我按下提示上的确定后,它给了我以下错误:
Error using cellstr (line 34)
Input must be a string.
Error in FreqVSChampB_no_spec (line 128)
filenames = cellstr(uigetfile('./*.txt','MultiSelect', 'on'));
任何人都知道为什么会这样做?
答案 0 :(得分:1)
在cellstr
模式下,uigetfile
的输出不需要'MultiSelect'
命令:输出已经采用了cellarray形式(参见uigetfile
的文档)。