I don't know Matlab but I'm quite sure that reading from a closed file descriptor will fail there too. There are also some missing semicolons and one loop range contains a colon rather a semicolon. So you may try this:
for i=1:5
for j=1:5
fnsil=fprintf('sad%d%d.wav'i,j);
fid=fopen(fnsil,'r');
fr=fscanf(fid,'%f',1);
for a=1:fr % Replaced ; by :
kk=fscanf(fid,'%f',1);
ex(i)=kk; % Added missing semicolon here
end % Removed unnecessary semicolon
fclose(fid); % Moved to here and added missing semicolon
end % Removed unnecessary semicolon
end