MATLAB 高级数据类型 table

table数据类型使用来取代statistics toolbox中的dataset的,可以生成带有表头的表格数据。

  1. 读取数据生成table table = readtable('1.txt')
    在这里插入图片描述
    用空格或者逗号分隔开,保存为txt或者CSV格式。
    在这里插入图片描述2. 调用构造函数生成table
number = ['1'; '2'; '3'] % 也可以是cell{}
value = ['1'; '2'; '3' ] % 也可以是cell{}
colName = ["number" ,"value"] % 也可以是cell{},如果是[]需要是""而不能是''
tabl1 = table(number,value,'VariableNames',colName)

在这里插入图片描述
2. 通过array2table,cell2table,struct2table 转换成table
1. array2table
· · · 用于将数组转换成table,类似于上面用构造函数生成table,需要额外来指定表头。

ta = table(array,'VariableNames',colName) % 注意需要维度匹配
array = table2array(ta) % 表头会被去掉
  1. cell2table
    · · · 用于将元胞数组转换成table,类似于上面用构造函数生成table,需要额外来指定表头。
ta = table(cell,'VariableNames',colName) % 注意需要维度匹配
cell = table2array(ta) % 表头会被去掉
  1. struct2table
    · · · 用于将结构体转换成table,类似于上面用构造函数生成table,不需要额外来指定表头,field的名称即为表头。
stu.name = ["AA","BB","CC"]';
stu.grade = [1 2 3]';
table = struct2table(stu)
kk = table2struct(table) % 转换成struct数组,与stu不同,体会区别

在这里插入图片描述
转换回来的结构体与原来的结构体是不同的,区别可以从图中看出来。


对table的访问和删除和一般的数组非常相似,因为运算符都被重载好了,这个不用细说,可以自己动手试试,它有两种访问方式,返回的数据类型是不一样的。

table(1,:) % 返回类型是table
table{1,:} % 返回类型是array
table.name % 返回类型是array,与上面的方法效果一样

在这里插入图片描述

table.name = []; % 删掉某列,某个单元同理
[table1; table2] % 合并table
[table1  table2] % 合并table  需要注意的是,两个都必须是同类型的表格
table.new = {...} % 这样可以直接增加一栏,增加一行可以考虑生成table再合并

一个比较重要的函数需要介绍,就是varfun(),这个函数主要是用来向量化操作的,与cellfun和arrayfun是一样的,只是这个使用来对table中每个元素进行运算。

out = varfun(@fun,table) 

合并table的操作主要是join(),outerjoin(),innerjoin(),这几个函数都是用来合并表格的,关于table更多的函数我们可以查看table对象的属性
在这里插入图片描述

  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆拾伍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值