Matlab 从混合内容的单元格中提取数字

Matlab 从混合内容的单元格中提取数字

我有一个具有不同数据类型的单元格数组,来自我需要读取的 Excel 表,但这超出了我的控制范围。

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

raw 现在是 r-by-c 单元格向量,为简单起见,假设它只有一行。它将用数字(确切地说是 excel datenums)或其他值(如 [NaN] 或 '')填充。因此,cell2mat() 将不起作用。

提取数字值的最佳方法是什么?有没有办法获取单元格包含数字的索引?

谢谢。

答案1

假设只有一行,下面的方法可以消除非数字值

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

要删除 NaN,你可以使用类似 @isnan 的方法

相关内容