我正在使用for循环来保存我希望在matlab中使用GUI处理的多个文件的路径和名称。我的代码如下:
% --- Executes on button press in MultiSelect.
function MultiSelect_Callback(hObject, eventdata, handles)
% hObject handle to MultiSelect (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[FileName,PathName,FilterIndex] = uigetfile('*.txt*','Study Files','MultiSelect','on');
Cols = size(FileName,2);
numfiles = Cols;
for i = 1:numfiles
file{i} =fullfile(PathName,FileName{i});
end
handles.gettinginfo = file ;
guidata(hObject,handles)
Fid = fopen(file{i});
data1 = handles.gettinginfo(2);
% for ii = 1:numfiles
B = [];
fid = fopen(data1);
tline = fgets(fid);
while ischar(tline)
parts = textscan(tline, '%f;');
if numel(parts{1}) > 0
B = [ B ; parts{:}' ];
end
tline = fgets(fid);
end
当我尝试将data1
与fopen
一起使用时,我遇到了问题,它给了我错误:
使用fopen时出错
第一个输入必须是char类型的文件名,或double类型的文件标识符。
但data1 = handles.gettinginfo(2);
为我提供了第二个选定文件的文件的路径和名称,因此我不太明白为什么它不会起作用。
我想将在for循环中创建的选定文件保存到全局数组中。做这个的最好方式是什么?当我尝试使用file{i}
从文件等导入数据时,它会覆盖其他文件并仅生成最后一个文件的信息,但我认为全局数组可能有助于解决此问题。
提前谢谢了。