Запишите и считанные матричные данные из двоичных файлов в Simulink

Используйте блок Binary File Reader, чтобы считать действительные и комплексные матричные данные из двоичного файла в упорядоченном по строкам формате.

Запишите данные

Запишите матрицу А = [1 2 3 8; 4 5 6 10; 7 8 9 11] к двоичному файлу, Matdata.bin использование блока Binary File Writer. Блок пишет заданный заголовок, struct('A',[1 2],'B','x7') сопровождаемый по условию.

Откройте модель.

open_system('writeMatrixData')

Запустите модель, чтобы записать данные в Matdata.bin.

sim('writeMatrixData')

Считайте данные

Binary File Reader блок считывает данные в двоичном файле Matdata.bin в 4 канала, с каждым каналом, содержащим 5 выборок. Параметр Заголовка файла читателя задает заголовок данных. Если точный заголовок не известен, необходимо, по крайней мере, задать прототип заголовка, то есть, его размера и типа данных.

Откройте модель.

open_system('readMatrixData')

Запустите модель, чтобы считать данные. Отобразите переменную выходных данных, yout.

sim('readMatrixData')
display(yout)
yout =

     1     2     3     8
     4     5     6    10
     7     8     9    11
     0     0     0     0
     0     0     0     0

Каждая система координат yout содержит системы координат матрицы А, сопровождаемой нулями, чтобы завершить систему координат. Исходная матрица А содержит 4 канала с 3 выборками в каждом канале. Читатель задан, чтобы считать данные в 4 канала с каждым каналом, содержащим 5 выборок. Поскольку существует недостаточно выборок, чтобы завершить систему координат, читатель добавляет нули в конце каждой системы координат.

Если вы выбираете Data, комплексный параметр, читатель считывает данные как M-by-N матрица комплексных чисел, где M и N заданы Выборками на систему координат и Количество параметров каналов, соответственно. Выберите Data, комплексный параметр, и запустите модель.

set_param('readMatrixData/Binary File Reader','IsDataComplex','on')
sim('readMatrixData')
display(yout)
yout =

   1.0000 + 2.0000i   3.0000 + 8.0000i   4.0000 + 5.0000i   6.0000 +10.0000i
   7.0000 + 8.0000i   9.0000 +11.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i

Блок считывает данные как чередованные действительные и мнимые компоненты. Если существует недостаточно выборок в двоичном файле, чтобы завершить матрицу, читатель заполняет те выборки нулями.

Если вы вносите какие-либо изменения в модель, сохраняете модель перед закрытием.

save_system('readMatrixData')
close_system('readMatrixData')
close_system('writeMatrixData')

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

(Simulink) | |