Измените порядок байтов данных в Simulink

По умолчанию блок 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 совпадает с исходными данными.

Смотрите также

Функции

Блоки