Изменение конечности данных в 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 = '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 соответствует исходным данным.

См. также

Функции

Блоки