MATLAB: Error in merging multiple CSV files into single file

combining text filesMATLAB

Hi! I need help regarding merging multiple CSV files into single file. At the first time, I managed to run this code :
%%Merge multiple CSV files into one CSV file

myDir = uigetdir % gets directory from any folder

d=dir(fullfile(myDir,'*.csv')); % retrieve the files

fido=fopen(fullfile('finalCSVnew.csv'),'w'); % open output file to write

for i=1:length(d)
fidi=fopen(fullfile(myDir,d(i).name)); % open input file

fwrite(fido,fread(fidi,'*char')); % copy to output

fclose(fidi); % close that input file

end
fido=fclose(fido); clear fid* d % close output file, remove temporaries

Turns out I have to change the command for "myDir" so it can select multiple file in one folder, not all file in one folder which need to be processed. So I change the code above to:
%%Merge multiple CSV files into one CSV file
myDir = uigetfile('*.csv','Select the data file','MultiSelect','on'); % gets directory from any folder
d=fullfile(myDir,'*.csv'); % retrieve the files
fido=fopen(fullfile('finalCSVnew.csv'),'w'); % open output file to write
for i=1:length(d)
fidi=fopen(fullfile(myDir,d(i).name)); % open input file
fwrite(fido,fread(fidi,'*char')); % copy to output
fclose(fidi); % close that input file
end
fido=fclose(fido); clear fid* d % close output file, remove temporaries
and there is an error message "Struct contents reference from a non-struct array object." Could you please help me to solve the problem? Thank you very much.

Best Answer

See my code:
% Merge multiple CSV files into one CSV file
[filenames, folder] = uigetfile('*.csv','Select the data file','MultiSelect','on') % gets directory from any folder
% Create output file name in the same folder.
outputFileName = fullfile(folder, 'finalCSVnew.csv')
fidOutput = fopen(outputFileName, 'wt'); % open output file to write
for k = 1 : length(filenames)
% Get this file name.
thisFileName = fullfile(folder, filenames{k})
% Open input file:
fidInput = fopen(thisFileName);
% Read text from it
thisText = fread(fidInput, '*char');
% Copy to output file:
fwrite(fidOutput, thisText);
fclose(fidInput); % close the input file
end
fclose(fidOutput);
% Open Windows Explorer to this folder
winopen(folder);