Как мне сообщить Matlab, что некоторые импортируемые данные находятся в шестнадцатеричном формате?

Я пытаюсь импортировать данные из листа Excel, в котором есть 3 столбца (время, идентификатор и данные).

Первый столбец содержит время (в секундах), а следующий столбец содержит числа (Id). Однако третий столбец (Данные) имеет шестнадцатеричные числа, поэтому Matlab не может обработать эту информацию и показывает «NaN» в командном окне/структуре всякий раз, когда я пытаюсь получить какую-либо информацию из третьего столбца.

Я хочу создать структуру для каждого идентификатора и отображать соответствующую информацию внутри этого идентификатора.

Следовательно, можно ли как-то получить информацию из третьего столбца, не получая ошибки NaN?

Вот мой код:

[dat1, dat2, dat3] = xlsread('1');
flds=dat3(1,:);
bus=cell2struct(dat3(2:end,:),flds,2);

for k=1:length(bus)
 if bus(k).Id == 150

    i=i+1;
    can_bus(k,:)
 end
end

person user161816    schedule 08.08.2016    source источник
comment
Можете ли вы показать пару строк образца данных из вашего листа Excel?   -  person anasimtiaz    schedule 08.08.2016
comment
Matlab будет импортировать шестнадцатеричные значения как string. Вам нужно использовать функцию hex2dec для этих строк, прежде чем вы сможете обрабатывать их как числа.   -  person Hoki    schedule 08.08.2016
comment
@anasimtiaz Я добавил образцы данных. пожалуйста, проверьте ссылку. Спасибо   -  person user161816    schedule 10.08.2016


Ответы (1)


Вы можете получить необработанный текст и выполнить преобразование самостоятельно:

Чтобы получить текст, вы должны получить другие выходные параметры из xlsread. Например:

[число, txt, необработанный] = xlsread('file.xls');

вернет числовые значения в num, текстовые значения в txt и необработанные данные ячейки в raw.

Источник

person marco wassmer    schedule 08.08.2016