I'm not entirely clear why you're jumping through so many hoops, but it looks like there's a misunderstanding. As far as I can tell (I don't have the required toolbox) a binary file reader is not intended to read streams of 0 and 1. It's intended to read streams of bytes as opposed to streams of characters. At least that's the common usage of binary file.
Sure, if you reconstruct the original data from your stream of 0 and 1 you should get back the same data but that's extremely wasteful. You start with double data = 8 bytes per samples, which you downcast to single by reducing the precision = 4 bytes per sample = 32 bits per sample. You then convert extract each bit and store each as double = 8 bytes per bit = 256 bytes per sample. So you've gone from having original data that takes 8 bytes per sample to slightly less precise data that takes 32 times more space.
You could just save the double wavdata into a file
fid = fopen('wav.bin', 'w');
fwrite(fid, wavdata, 'double');
fclose(fid);
and read that directly with the Binary File Reader.
Best Answer