MATLAB: Extracting particular rows and column from bunch of excel files and saving into one file

csvfor loop

Hi,
I have bunch of excel files in the folder with a lot of data in them, only data is useful to me is in columnn 3 of each file. First row of each file is the header and I do not want to include the header in the extracted data so I want 3 column from each file and 2:1002 data in rows from every single file and after extraction want to save it in different csv file so I can further analyse the data. Trying since morning but still sucks to come up with the proper script. Need help!
Code tried so far:
folder = fullfile('C:','Users','muhammad','Desktop','Velocity');
files = dir( fullfile(folder, '*.csv') );
for ii = 1:length(files)
data = csvread(fullfile(folder,files(ii)));
res=youranalysisfunction(data([2:1002]:3));
end
Error:
Error using fullfile (line 67)
All inputs must be strings, character vectors, or cell arrays of character vectors.
Error in ExtractColumns (line 8)
data = csvread(fullfile(folder,files(ii)));

Best Answer

files(ii) is a struct. You need to access the name property
data = csvread(fullfile(files(ii).folder,files(ii).name))
Also, on newer versions, it is better to use readmatrix(), you can skip the header line directly
folder = fullfile('C:','Users','muhammad','Desktop','Velocity');
files = dir( fullfile(folder, '*.csv') );
for ii = 1:length(files)
data = readmatrix(fullfile(files(ii).folder,files(ii).name), 'NumHeaderLines', 1)
res=youranalysisfunction(data(:,3));
end