fread

Считайте двоичные данные из инструмента

Синтаксис

A = fread(obj)
A = fread(obj,size)
A = fread(obj,size,'precision')
[A,count] = fread(...)
[A,count,msg] = fread(...)
[A,count,msg,datagramaddress] = fread(obj,...)
[A,count,msg,datagramaddress,datagramport] = fread(obj,...)

Аргументы

obj

Интерфейсный объект.

size

Количество значений, чтобы читать.

'precision'

Количество битов, считанных из каждого значения и интерпретации битов как символ, целое число или значения с плавающей точкой.

A

Двоичные данные возвращены в инструмент.

count

Количество чтения значений.

msg

Сообщение, указывающее, была ли операция чтения неудачна.

datagramaddress

Адрес дейтаграммного отправителя.

datagramport

Порт дейтаграммного отправителя.

Описание

A = fread(obj) и A = fread(obj,size) считайте двоичные данные из инструмента, соединенного с obj, и возвращает данные в A. Максимальное количество значений, чтобы читать задано size. Если size не задан, максимальное количество значений, чтобы читать определяется InputBufferSize объекта свойство. Допустимые опции для size :

n

Читайте в большей части n значения в вектор-столбец.

[m,n]

Читайте в большинстве значений m на n, заполняющих матрицу m на n в порядке следования столбцов.

size не может быть inf, и ошибка возвращена, если конкретное количество значений не может храниться во входном буфере. Вы задаете размер, в байтах, входного буфера с InputBufferSize свойство. Значение задано как байт, умноженный на precision (см. ниже).

Если obj объект UDP и DatagramTerminateMode off, size значение соблюдается. Если size меньше длины дейтаграммы, только size значения читаются. Если size больше длины дейтаграммы, предупреждение выдано, утвердив, что полная дейтаграмма была считана перед size значения были достигнуты.

A = fread(obj,size,'precision') считывает двоичные данные с точностью, заданной precision.

precision управляет количеством битов, считанных из каждого значения и интерпретации тех битов как целое число, или символьные значения с плавающей точкой. Если precision не задан, uchar (8-битный символ без знака), используется. По умолчанию числовые значения возвращены в массивах с двойной точностью. Поддерживаемые значения для precision описаны ниже в Советах.

[A,count] = fread(...) возвращает количество чтения значений к count.

[A,count,msg] = fread(...) возвращает предупреждающее сообщение в msg если операция чтения была неудачна.

[A,count,msg,datagramaddress] = fread(obj,...) возвращает дейтаграммный адрес в datagramaddress если obj объект UDP. Если больше чем одна дейтаграмма читается, datagramaddress ''.

[A,count,msg,datagramaddress,datagramport] = fread(obj,...) возвращает дейтаграммный порт в datagramport если obj объект UDP. Если больше чем одна дейтаграмма читается, datagramport [].

Советы

Прежде чем можно будет считать данные из инструмента, они должны быть соединены с obj с fopen функция. Связанный интерфейсный объект имеет Status значение свойства open. Ошибка возвращена, при попытке выполнить операцию чтения в то время как obj не соединяется с инструментом.

Если msg не включен как выходной аргумент, и операция чтения не была успешна, затем предупреждающее сообщение возвращено в командную строку.

ValuesReceived значение свойства увеличено на количество чтения значений, каждый раз fread выпущен.

Примечание

Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB®. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.

Правила для завершения бинарной операции чтения

Операция чтения с fread блокирует доступ к Окну Команды MATLAB до

  • Конкретное количество значений читается. Для объектов UDP, DatagramTerminateMode должен быть off.

  • Время задано Timeout передачи свойства.

  • Дейтаграмма получена (для объектов UDP только, когда DatagramTerminateMode on).

  • Входной буфер заполнен.

  • Линия EOI утверждается (только GPIB и инструменты VXI).

  • EOSCharCode получен (только GPIB и инструменты VXI).

Больше о GPIB и Терминаторе VXI

EOSCharCode значение свойства распознано только когда EOSMode свойство сконфигурировано к read или read&write. Например, если EOSMode сконфигурирован к read и EOSCharCode сконфигурирован к LF, затем один из способов, которыми завершает работу операция чтения, - когда символ перевода строки получен.

Если EOSMode none или write, затем нет никакого терминатора строки, заданного для операций чтения. В этом случае, fread завершит выполнение и возвратит управление в команду, когда другому критерию, такому как тайм-аут, будут соответствовать.

Поддерживаемая точность

Поддерживаемые значения для precision описаны ниже.

Тип данных

Точность

Интерпретация

Символ

uchar

8-битный символ без знака

schar

8-битный символ со знаком

char

8-битный символ без знака или со знаком

Целое число

int8

8-битное целое число

int16

16-битное целое число

int32

32-битное целое число

uint8

8-битное беззнаковое целое

uint16

16-битное беззнаковое целое

uint32

32-битное беззнаковое целое

short

16-битное целое число

int

32-битное целое число

long

32-или 64-битное целое число

ushort

16-битное беззнаковое целое

uint

32-битное беззнаковое целое

ulong

32-или 64-битное беззнаковое целое

С плавающей точкой

single

32-битная плавающая точка

float32

32-битная плавающая точка

float

32-битная плавающая точка

double

64-битная плавающая точка

float64

64-битная плавающая точка

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2019b

Представлено до R2006a