如何告诉Matlab一些导入的数据是十六进制的?

时间:2016-08-08 14:04:08

标签: excel matlab structure data-import

我正在尝试从excel表中导入数据,其中有3列(Time; Id;和Data)。

第一列包含时间(以秒为单位),而下一列包含数字(Id)。但是,第三列(Data)具有十六进制数,因此每当我尝试从第三列检索任何信息时,Matlab都无法处理该信息并在命令窗口/结构中显示“NaN”。

我想为每个ID创建一个结构,并在Id中显示相应的信息。

因此,无论如何从第三列获取信息而不会出现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

1 个答案:

答案 0 :(得分:1)

您可以获取原始文本并进行转换:

  

要获取文本,您必须获取其他输出参数   来自xlsread。例如:

     

[num,txt,raw] = xlsread(' file.xls');

     

将返回num中的数值,txt中的文本值和   raw中的原始单元格数据。

Source