MATLAB excel表格数据的处理(str,char,datetime)


在处理数据时,我们往往会遇到带有非数字的文本表格数据,且这种数据可能是成列出现的。那如何处理这些数据呢?

读取excel表格数据

首先我们还是得先导入表格数据,一般来说有两种方式

方式一(不推荐)

xlsread('文件路径')

以上方式不推荐的原因是它只能用于导入纯数据表格,而显然这不在今天讨论的范围内。

方式二(推荐)

首先按照下图导入数据。
在这里插入图片描述

选择数据导入之后可以看到下图界面,需要注意的是红框内的数据格式。一般来说MATLAB会自动判断数据类型,但是有的时候可能它判断的就不是我们所期望的。
更改数据类型有两个作用:一是其决定了你之后的处理流程和函数,二是其数据结构将会被固定,即你对表格数据的修改也必须符合其数据结构。
比如说下图中的D列,对datatime(日期时间)不熟悉的人可以将其换为str(文本)类型,其处理难度将会降低,而且后续可将其整一列换为str类型的数据。当然,MATLAB也有很多内置函数可以对其进行数据类型的转换,那显然会费些时间。
在这里插入图片描述
导入后可保存变量为mat文件,方便下次调用(即可直接用load语句调用而无需用鼠标进行上述繁琐的操作)

处理表格数据

取出表格数据

固然,我们可以用惯用的小括号的形式取出表格数据进行处理,但是用这种方法取出的数据会是一个表格,这往往不是我们想要的。
因此推荐使用大括号的方式直接取出内置数据进行处理。

data1(:,3) % 取出的将会是表格类型(不推荐)
data1{:,3} % 直接取出内置数据(推荐)

处理datatime数据

最简单的便是用datevec函数,将datetime数据转换为矩阵,后续操作就十分轻松了。

time_vec=datevec(datetime);
year=time_vec(:,1);
month=time_vec(:,2);

处理str数据

str数据是一整个字符串,这对我们的处理也很不易,其处理有以下几种方式

str_split=split("sdfds",'d'); 
str_char=char("sdfds");
str_num=str2num("190311");

前者可以按照我们想要的方式进行分割,也就是说比如像“19-03-11”这种日期型数据,我们也可不必使用前文的方法进行处理,也可以用split(“19-03-11”,’-’)对其进行分割后,再使用str2num函数进行转换。

str数据与char数据的异同

str数据往往作为整体出现,而char则体现了“分而治之”的思想

"asdf"=="asdf" % str 结果为 1
'asdf'=='asdf' % char 结果为 [1 1 1 1]
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页