Matlab extrahieren Zahlen aus Zellen mit gemischtem Inhalt

0

Ich habe ein Zellenarray mit verschiedenen Datentypen, aus einem Excel-Datenblatt, das ich einlesen muss, das jedoch außerhalb meiner Kontrolle liegt.

[~, ~, raw] = xlsread(xlsFile)

raw ist jetzt ein r-by-c-Zellenvektor, der Einfachheit halber wird davon ausgegangen, dass er nur eine Zeile hat. Es wird mit Zahlen (excel Datenumsetzung, um genau zu sein) oder anderen Werten wie [NaN] oder '' gefüllt. Cell2mat () funktioniert daher nicht.

Was ist der beste Weg, um nur die Zahlenwerte zu extrahieren? Gibt es eine Möglichkeit, einen Index zu erhalten, bei dem eine Zelle eine Nummer enthält?

Vielen Dank.

phi
quelle

Antworten:

0

Angenommen, es handelt sich nur um eine einzige Zeile, werden im folgenden nichtnumerische Werte entfernt

rawData = {5,1.77,NaN,''};
rawDataIsNum = cell2mat(cellfun(@isnumeric,rawData,'UniformOutput',false)); %Returns matrix of true/false if real number or NaN
data = rawData(rawDataIsNum); %Returns cell of numbers

Um die NaNs zu entfernen, können Sie etwas ähnliches mit @isnan verwenden

jebob
quelle