1.表格的统计分析
表的统计分析包括计算均值、方差等,这些参数可以通过函数summary一次计算出来,程序示例如下:
xingming={'zhangsan';'lisi';'wangwu'}; %首先创建表变量
xuehao={'1001';'1002';'1003'};
chengji=[89 95;90 87;88 84];
t=table(xingming,xuehao,chengji)
运行结果:
t =
3×3 table
xingming xuehao chengji
____________ ________ ________
{'zhangsan'} {'1001'} 89 95
{'lisi' } {'1002'} 90 87
{'wangwu' } {'1003'} 88 84
summary(t) %无法统计字符型元胞数组,可以对chengji双精度型进行统计处理(按列统计)
运行结果:
Variables:
xingming: 3×1 cell array of character vectors
xuehao: 3×1 cell array of character vectors
chengji: 3×2 double
Values:
Column 1 Column 2
________ ________
Min 88 84
Median 89 87
Max 90 95
mean(t.chengji) %字段索引再mean函数(默认维度按列即字段名求均值)
mean(t.chengji,2) %2表示第2维度即按行求均值
t.pingjunzhi=mean(t.chengji,2) %使用字段索引并赋值
运行结果:
ans =
89.0000 88.6667
ans =
92.0000
88.5000
86.0000
t =
3×4 table
xingming xuehao chengji pingjunzhi
____________ ________ ________ __________
{'zhangsan'} {'1001'} 89 95 92
{'lisi' } {'1002'} 90 87 88.5
{'wangwu' } {'1003'} 88 84 86
2.表的排序、查找、删除
直接看程序示例:
sortrows(t,'xingming') %按行排序,表格t按字段'xingming’按字母升序
运行结果:
ans =
3×4 table
xingming xuehao chengji pingjunzhi
____________ ________ ________ __________
{'lisi' } {'1002'} 90 87 88.5
{'wangwu' } {'1003'} 88 84 86
{'zhangsan'} {'1001'} 89 95 92
t(:,[1 2 4 3]) %用索引排序:任意行,列将3和4列互换
运行结果:
ans =
3×4 table
xingming xuehao pingjunzhi chengji
____________ ________ __________ ________
{'zhangsan'} {'1001'} 92 89 95
{'lisi' } {'1002'} 88.5 90 87
{'wangwu' } {'1003'} 86 88 84
% t.pingjunzhi=[] %删除,用字段索引赋空值删除该列
3.提取满足特定条件的数据
tf=t.pingjunzhi>90 %查找平均值大于90的学生信息,返回逻辑值;
t(tf,:) %使用tf作为逻辑索引,索引表格中符合条件的学生的信息
运行结果:
tf =
3×1 logical 数组
1
0
0
ans =
1×4 table
xingming xuehao chengji pingjunzhi
____________ ________ ________ __________
{'zhangsan'} {'1001'} 89 95 92
4.与元胞数组、结构数组的转换
使用相应函数进行处理,与结构数组转换table2struct、struct2table,与元胞数组转换table2cell、cell2table,程序示例如下:
s=table2struct(t) %表格转换为结构数组后,每一行都变为1个元素,因此是3行1列的结构数组
运行结果:
s =
包含以下字段的 3×1 struct 数组:
xingming
xuehao
chengji
pingjunzhi
s(1) %查看第1个元素的值
运行结果:
ans =
包含以下字段的 struct:
xingming: 'zhangsan'
xuehao: '1001'
chengji: [89 95]
pingjunzhi: 92
struct2table(s) %反向转换
运行结果:
ans =
3×4 table
xingming xuehao chengji pingjunzhi
____________ ________ ________ __________
{'zhangsan'} {'1001'} 89 95 92
{'lisi' } {'1002'} 90 87 88.5
{'wangwu' } {'1003'} 88 84 86
c=table2cell(t) %表格转换为元胞数组后,变量名称消失,变量值转换为元胞数组,其中多列的双精度值会自动拆分为多个单列表示
运行结果:
c =
3×4 cell 数组
{'zhangsan'} {'1001'} {[89 95]} {[ 92]}
{'lisi' } {'1002'} {[90 87]} {[88.5000]}
{'wangwu' } {'1003'} {[88 84]} {[ 86]}
cell2table(c) %反向转换
运行结果:
ans =
3×4 table
c1 c2 c3 c4
____________ ________ ________ ____
{'zhangsan'} {'1001'} 89 95 92
{'lisi' } {'1002'} 90 87 88.5
{'wangwu' } {'1003'} 88 84 86
更多精彩内容










End