Run statistical tests on multiple csvs

2 views (last 30 days)
Ross Thompson
Ross Thompson on 20 Apr 2021
Commented: Ross Thompson on 20 Apr 2021
I have lots of days worth of heartrate data stored in seperate csvs and im currently running a ttest on the data 3hrs before and after 12am. I was going to run this manually on all 30 differenent days but i was wondering if there was a way of looping through all the different days to return all the p values at once.
  1 Comment
Rik on 20 Apr 2021
That seems very likely. Once you create file list (e.g. with dir) you should be able to do the processing in a loop.
Do you have a specific question about implementing this?

Sign in to comment.

Answers (1)

Manash Sahoo
Manash Sahoo on 20 Apr 2021
Edited: Manash Sahoo on 20 Apr 2021
Store your data in a folder, and use the "Dir" command to return the filenames and loop through them.
For example:
% Load your heart rate data. You can get the names of files and folders
% using the "dir" command.
files = dir(strcat(filepath,"\*.csv")) % Filepath would be the path where your csvs are located.
pval = {};
for i = 1:length(files)
HRDat = readmatrix(; % You may need to edit this per your filepath.
% Do your analysis here, and return your pvalue to pval{i}.
Your pvalues in the cell array "pval" will thus correspond to the files in the struct array "". This is usually the way I do things with heart rate data. Let me know if you have any further questions!
EDIT: Fixed the code.

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!