MATLAB: Open multiple files from the same folder with fopen and textscan

folderfopenMATLABmultiple filestextscan

In matlab I wrote the following code:
fid = fopen('LedgeTest_muSP_0.20_muRP_0.20.data.852','r');
% Read all the data from the file
dataRead = textscan(fid,'%f %f %f %f %f %f %f %f %f %f %f %f %f %f','HeaderLines',1);
expData = [dataRead{1}(:,1) dataRead{2}(:,1) dataRead{3}(:,1) dataRead{7}(:,1) dataRead{3}(:,1)+dataRead{7}(:,1) rhoPart*(4/3)*pi*(dataRead{7}(:,1).^3)];
Problem: How can I open en read multiple files from the same folder?
Problem example: All of the 5 .data files are located in the same folder together with the matlab code (see picture below)
In a for loop I want to extract the data from each .data file.

Best Answer

You can use a for loop to iterate over the files;
files = dir(fullfile(pwd,'*.data*'));
data = cell(length(files),1);
for i = 1:length(files)
fid = fopen(fullfile(files(i).folder,files(i).name),'r');
% Read all the data from the file
dataRead = textscan(fid,'%f %f %f %f %f %f %f %f %f %f %f %f %f %f','HeaderLines',1);
data{i} = [dataRead{1}(:,1) dataRead{2}(:,1) dataRead{3}(:,1) dataRead{7}(:,1) dataRead{3}(:,1)+dataRead{7}(:,1) rhoPart*(4/3)*pi*(dataRead{7}(:,1).^3)];
end
alldata = vertcat(data{:});