Do calculations in csv data one csv file at the time

I have several csv files. Want to perform calculations on the data in the csv file, for example calculating variable x. Then, I want one table with in the first column the filename of each csv file and then in the next column the calculated variable x. How can I do this? Newbie,so sorry for asking.

3 Comments

How does your query relate to MATLAB?
Can't the calculations be performed in the CSV file directly via Excel?
Sure, but there are a lot of files and each files has a big number of rows - hence looking for a way to automate it

Sign in to comment.

 Accepted Answer

Something like this; adjust as necessary.
% use dir() to get info about the relevant csv files:
csv_dir = '.';
F = dir(fullfile(csv_dir,'*.csv'));
filename = fullfile({F.folder},{F.name}).';
% preallocate x. I assume it's a scalar numeric for each file
N = numel(F);
x = zeros(N,1);
% loop over the files
for ii = 1:N
% read each file (use the appropriate function with the appropriate options)
data = readtable(filename{ii});
% ...
% calculate this_x based on data
% ...
% store this_x
x(ii) = this_x;
end
% write file with file names and x values
T = table(filename,x);
writetable(T,'out.csv')

Tags

Asked:

on 27 Apr 2024

Edited:

on 28 Apr 2024

Community Treasure Hunt

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

Start Hunting!