Any method you choose is going to have to make assumptions about bit/byte ordering and the handling of the special inf, nan, and denormalized bit patterns. The following method simply assumes that the char array bit pattern you have matches the machine you are currently using and accounts for these special patterns:
result = typecast(uint32(bin2dec(S)),'single');
The other methods shown in this thread that work with the sign, exponent, and mantissa bits directly do not account for these special bit patterns.