MATLAB数据读取:readtable函数异常处理指南

背景

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

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空