Вопрос по fread, labview, matlab, binary, bigdata – Импортировать двоичные файлы LabVIEW с информацией заголовка в MATLAB?

2

У меня есть большие BIN-файлы (10 ГБ 60 ГБ), которые я хочу импортировать в MATLAB; каждый двоичный файл представляет выходные данные двух датчиков, таким образом, есть также столбцы данных. Вотболее управляемый пример размера моих данных.

Вы заметите, что существует версия данных .txt; Мне нужно загрузить файлы .bin непосредственно в MATLAB, я могуt использовать версию .txt, потому что конвертирование с большими файлами занимает часы.

У меня проблема в том, что файл .bin содержит информацию заголовка, которую я могуКажется, он интерпретирует неправильно, и поэтому я не могу извлекать данные в MATLAB каждый раз, когда я пытаюсь получить кажущиеся бессмысленными значения.

Это вся информация, которую я имею о бинарном заголовке:

Загрузка двоичных данных Labview в MatlabLabVIEW Data Logger: формат файла двоичного заголовка

Буду признателен за любую помощь / совет, я пытаюсь решить эту проблему в течение нескольких дней.

Постскриптум Кто-то уже написал функцию для решения этой проблемы, но она не работает с моими двоичными данными (возможно, это связано с размерами / размером моих данных):http://www.mathworks.co.uk/matlabcentral/fileexchange/27195-load-labview-binary-data

Ниже приведен код, который я использую для импорта моих данных. Я считаю, что d1 и d2 - это измерения моих двоичных данных. D2, вероятно, неверно для файла примера в выпадающем списке, потому что он был усечен. У меня проблема в том, что код извлекает мои данные, и я знаю, что это правильно, потому что я могу проверить это с помощью файла .txt (также в выпадающем списке), однако между хорошими точками данных есть случайные неверные значения. Эти неправильные значения являются следствием следующих строк следующих строк: "NI_ChannelName ","Датчик А ","Датчик B ","NI_UnitDescription», а также "Volts» разбросаны по всему двоичному файлу.

clear all
clc
fname = 'RTL5_57.bin';
fid = fopen(fname,'r','ieee-be');
d1 = fread(fid,4);
trash=fread(fid,2,'double');
d2 = fread(fid,4);
trash=fread(fid,1,'double');
data=fread(fid,'double');
Я хочу прочитать весь набор данных, я использую высокопроизводительный кластер, поэтому память неэто проблема. James Archer
ты можешь использовать :imrotdatamathworks.com/help/matlab/ref/importdata.htmlс собственностьюheaderlinesIn» Adiel
Вы хотите загрузить весь набор данных за один раз? Или читать части данных? Ton Plomp

Ваш Ответ

2   ответа
0
0

https://decibel.ni.com/content/docs/DOC-39038

Объем:

1) Написать бинарный файл в Matlab и прочитать в labview. 2) Написать бинарный файл в labview и прочитать в matlab.

Фон:

ВАЖНЫЙ:

Вы должны знать (3) вещи о двоичных данных в файле, прежде чем сможете прочитать данные:

1) какой двоичный формат (точность) использовался для хранения данных

2) точное количество значений в файле для чтения.

3) Endianness В двоичных файлах нет строки или столбца. Подумайте о длинной строке или длинном столбце, который необходимо сопоставить с двумерным массивом.

Ресурсы по данным в двоичном формате.

http://cse.unl.edu/~sincovec/Matlab/Lesson%2024/Binary/CS211%20Lesson%2024%20-%20Binary%20File%20Input-Output.htm

Похожие вопросы