For Loop only showing data for last file within Array

I am trying to create a script that will load multiple xlsx files into one variable. When I run the code, I am able to see the correct number of files being processed however the variable I created to store files only shows the last files processed in the loop. *** I'm a beginner*** please let me know what I need to do so that the variable I created to store the files ( data_in) will no longer read as a 1x73 double rather a 3x73 double.
clear all; clc
[file_list, path_n] = uigetfile('.xlsx', 'Grab the files you want to process', 'MultiSelect', 'on');
if iscell(file_list) == 0
file_list = {file_list};
end
for i = 1:length (file_list)
filename = file_list{i};
data_in = xlsread([path_n filename]);
end

 채택된 답변

Voss
Voss 2022년 6월 9일
편집: Voss 2022년 6월 9일
Make data_in a cell array, and store the contents of each file in a different cell of data_in:
clear all; clc
[file_list, path_n] = uigetfile('.xlsx', 'Grab the files you want to process', 'MultiSelect', 'on');
if ~iscell(file_list)
file_list = {file_list};
end
n_files = numel(file_list);
data_in = cell(n_files,1)
for ii = 1:n_files
filename = file_list{ii};
data_in{ii} = xlsread([path_n filename]);
end
Then vertically concatenate the contents of all the cells of data_in. This will only work if all the cells' contents have the same number of columns.
data_in = vertcat(data_in{:});
% if each file contains a single row of data with 73 columns,
% then data_in is now a n_files-by-73 matrix

댓글 수: 2

That seems to have worked. All my data will populate in 73 columns so as I continue to add more files this should work out. Thank you.
You're welcome!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

질문:

2022년 6월 9일

댓글:

2022년 6월 9일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by