MATLAB: Fopen files in one dataset

fopen for textscan

Hi!
I collected two different data sets from 30 subjects, so in total I have 60 different .txt files. My goal is to have them all in one big dataset, already in order. The files have different endings (_MT or _OT), depending on the coniditon. Each subject should therefore appear twice within the dataset, but already labeled with 0 or 1 for the condition. I tried to go with a for loop.
for ssubj = 001:030
filename = ['VP0', num2str(ssubj), '_MT.txt'];
filename2 = ['VP0', num2str(ssubj), '_OT.txt'];
file = fopen('/Users/cf/Documents/MATLAB/Passive');
tmp = textscan(file, '%s%f%f%f', 'CollectOutput', true, 'Delimiter', ' ', 'HeaderLines', 3);
[~] = fclose(file);
dat(: , 1, ssubj) =
end
I always get this error… Or is the directory already wrong?
Error using textscan
Invalid file identifier. Use fopen to generate a valid file identifier.
Thank you for your help!

Best Answer

You don't use either filename when calling fopen. How is Matlab supposed to know which file you mean?
I would suggest using either readlines (introduced in R2020b) or readfile (which you from the FEX, if you are using R2017a or later, you can also get it through the AddOn-manager). Both of those functions will be able to deal with the UTF-8 encoding in your files. The first will return your file as a string vector, the latter as a cellstr.