欢迎光临散文网 会员登陆 & 注册

【MATLAB】关于使用readtable函数读取异常的问题处理

2021-10-15 10:26 作者:-何其-  | 我要投稿

背景

对于某个工作簿,采用readtable函数进行读取,如下数据

需要读取的数据

读取要求是对于InitialValue列,读取出来的是doule形式,但有时候该列却读成cell形式,且cell形式里面还是char形式,即有可能读取成{‘311.3542’}这种形式

原因分析

对于InitialValue列所包含的数据,其被保存成文本样式(也就是左上角的绿色小三角),导致readtable函数有时是把E列2行读取成{‘311.3542’},有时候也读取成[311.3542],真是奇妙

解决办法

(1)需要对Excel中的InitialValue列,都转换成数字后(去掉绿色小三角),matlab读取时才会是double列;

(2)或者直接读取后,再增加判断函数,如果读取不是double列则进行处理;

代码优化

a=reattable(......) % 读取数据

if ~isempty(a) % 若数据不为空则进行优化

   if iscell(a.InitialValue) == 1 & isa(a.InitialValue{1},'double') == 1

      a.InitialValue = cell2mat(a.InitialValue);

   elseif iscell(a.InitialValue) == 1 & ischar(a.InitialValue{1}) == 1

      a.InitialValue = cell2mat(cellfun(@(x)str2double(x),a.InitialValue,'Un',false));

   end

end


【MATLAB】关于使用readtable函数读取异常的问题处理的评论 (共 条)

分享到微博请遵守国家法律