По умолчанию блок Binary File Reader использует порядок байтов хост-машины. Чтобы изменить порядок байтов, такой как тогда, когда хост-машина, которая пишет данные, не имеет того же порядка байтов как хост-машина, которая считывает данные, используйте функцию swapbytes
.
Напишите числовой массив в формате с обратным порядком байтов в файл bigEndian.dat
. Считайте данные с помощью блока Binary File Reader
. Читатель считывает данные в формате с прямым порядком байтов.
fid = fopen('bigEndian.dat','w','b'); fwrite(fid,[1 2 3 4 5 6 7 8],'double'); fclose(fid);
Откройте и моделируйте модель.
model = fullfile(matlabroot,'examples','dsp','changeEndian'); open_system(model) sim(model)
Отобразите переменную данных, x.
display(x)
x = 1.0e-318 * 0.3039 0.0003 0.0104 0.0206 0.0256 0.0307 0.0357 0.0408
Массив x
не совпадает с исходными данными. Измените порядок байтов x
с помощью функции swapbytes
.
y = swapbytes(x); display(y)
y = 1 2 3 4 5 6 7 8
Тот массив y
совпадает с исходными данными.