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

您所在的位置:网站首页 为什么matlab打开不了文件 【MATLAB】关于使用readtable函数读取异常的问题处理

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

2023-08-12 02:09| 来源: 网络整理| 查看: 265

背景

对于某个工作簿,采用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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3