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