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

 Réponse acceptée

Voss
Voss le 9 Juin 2022
Modifié(e) : Voss le 9 Juin 2022
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 commentaires

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!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Get Started with MATLAB dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by