Я ищу простой способ для преобразования из C-код шестигранного массива MatLabПреобразование шестнадцатеричных C массива в Matlab Vector
Доступен Формат C-код: Const uint16_t AUDIO_SAMPLE [] = {0x4952, 0x4646 , 0x4f6e, 0xf, 0x4157, 0x4556, 0x6d66, 0x2074, 0x12, 0, 0x1}
Обязательный Matlab Формат: AUDIO_SAMPLE = [18770 17990 20334 15 16727 17750 28006 8308 18 0 1]
Хотя просто c onvert для небольших чисел, мне нужно преобразовать очень большой массив. Я использую встроенную платформу, поэтому числа не могут быть записаны в простой текстовый файл для последующего чтения в Matlab. Его предпочтительнее написать код преобразования в Matlab.
Edit:
До сих пор в состоянии избавиться от 0x. Не удалось получить вектор после использования Eval функции, как указано ниже:
a='0x4952, 0x4646, 0x4f6e'; %Given
b = strrep(a, '0x', '') ; %Returns 4952, 4646, 4f6e
x = eval([ '[', b, ']' ]) %
Вы хотите извлечь значения из исходных кодов/файлов заголовков C? –
@ KlasLindbäck Вообще-то, у меня есть аудиоклип, представленный как c-код для микроконтроллера. Мне нужно было выполнить обработку сигнала в Matlab. Позже мне, возможно, придется сделать обратное тоже, то есть преобразовать матричный вектор в C-массив. – Galaxy
Является ли это разовым или вам нужно делать это много раз? –