2016-08-08 7 views
3

Ich versuche, die Daten von einem Excel-Blatt zu importieren, in dem 3 Spalten (Time; Id; und Data) sind.Wie kann ich Matlab mitteilen, dass einige der Daten, die importiert werden, in Hex angegeben sind?

Die erste Spalte enthält die Zeit (in Sekunden), während die nächste Spalte Nummern (Id) enthält. Die dritte Spalte (Data) hat jedoch Hexadezimalzahlen, daher kann Matlab diese Informationen nicht verarbeiten und zeigt 'NaN' im Befehlsfenster/in der Struktur, wenn ich versuche, Informationen aus der dritten Spalte abzurufen.

Ich möchte eine Struktur für jede Ids erstellen und innerhalb dieser Id die entsprechenden Informationen angezeigt werden soll.

Gibt es also sowieso die Informationen aus der dritten Spalte zu erhalten, ohne NaN Fehler zu bekommen?

mein Code hier:

[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 
+0

zeigen Sie ein paar Zeilen von Beispieldaten aus Ihrem Excel-Blatt? – anasimtiaz

+0

Matlab importiert Hex-Werte als "String". Sie müssen die Funktion ['hex2dec'] (http://mathworks.com/help/matlab/ref/hex2dec.html) für diese Strings verwenden, bevor Sie sie als Zahlen behandeln können. – Hoki

+0

@anasimtiaz Ich habe die Beispieldaten hinzugefügt. Bitte überprüfen Sie den Link. Vielen Dank – user161816

Antwort

1

Sie können den Rohtext bekommen und die Umwandlung selbst tun:

den Text zu erhalten, müssen Sie andere Ausgangsparameter von xlsread zu bekommen. Zum Beispiel:

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

gibt die numerischen Werte in num, die Textwerte in txt und die Rohdaten in roh zurück.

Source

Verwandte Themen