Импорт шестнадцатеричных данных из файла с помощью Matlab - PullRequest
0 голосов
/ 09 марта 2011

Это часть моих данных.

ªU€ÿ       ÿ  dô      @           @›ÿÿ;<  …æ  ³   3m ...

Сохраняется в файле. Когда я смотрю на это с помощью hex-редактора, я вижу hex-значения. Как я могу прочитать эти "шестнадцатеричные данные" с помощью Matlab?

РЕДАКТИРОВАТЬ: я получаю эту ошибку:

??? Error using ==> hex2dec at 38
Input string found with characters other than 0-9, a-f, or A-F.

с этим кодом:

a = fread(fid,1,'uint32','l'); 
fprintf('%X',a) 
b = hex2dec(a);

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

hex2dec () ожидает ввод шестнадцатеричной числовой строки.

>> hex2dec('28')

С вашим оператором fread я подозреваю, что ваша переменная 'a' будет целым числом * 4 отсюда и сообщение об ошибке, насколько я понимаюточность уже преобразовала шестнадцатеричную строку в тип, который вы объявили.Если вы хотите передать это значение через hex2dec, вам нужно создать строковый ввод.

>> hex2dec(num2str(28));

Знаете ли вы формат вашего двоичного файла?т.е. является ли первое значение данных целым числом * 4?

РЕДАКТИРОВАТЬ: добавлен шестнадцатеричный вывод

В ответ на комментарий, когда вы читаете данные, MATLAB преобразует поток двоичных данныхв формате, который вы определили.Если вы хотите получить поток шестнадцатеричных данных, то самый простой способ - преобразовать их обратно в шестнадцатеричный.

a=dec2hex(fread(fid))

'a' будет список всех значений в шестнадцатеричном формате и должен соответствовать тому, что высм. в вашем шестнадцатеричном редакторе.

1 голос
/ 02 февраля 2012
q=dec2bin(hex2dec(num2str(p)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...