MATLAB统计工具箱中提供了tabulate函数,用来统计一个数组中各数字(元素)出现的频数、频率。调用格式如下:
(1)TABLE=tabulate(x)
生成样本观测数据x的频数和频率分布表。输入参数x可以是数值型数组、字符串、字符型数组、字符串元胞数组和名义尺度数组。参数TABLE是包含3列的数组,其第一列是x中不重复的元素,第二列是这些元素出现的频数,第三列是这些元素出现的频率。当x是数值型数组时,TABLE是数值型矩阵;当x是字符串、字符型数组、字符串元胞数组和名义尺度(categorical)数组时,TABLE是元胞数组。
(2)tabulate(x)
直接在MATLAB命令窗口显示样本观测数据x的频数和频率分布表。此时没有输出变量。
Tabulate:直接在MATLAB命令窗口显示样本观测数据x的频数和频率分布表。此时没有输出变量。不仅统计数字的频数频率,还可以统计字符出现的频数和频率。
例1:统计数值型数组中各元素出现的频数、频率。
clear;clc
x=[2 4 3 1 4 6 8 7 4 3 6 3 2 4 6 3 6 5 7 6 3 2 5 7 ];
tabulate(x)
结果:
例2:统计字符串中各字符出现的频数、频率。
y=['If x is a numeric array, TABLE is a numeric matrix.']';
tabulate(y)
注意此处字符串矩阵后面有转置符号,区别数字矩阵。
结果:
例:统计字符型数组中各元素出现的频数和频率
clear;clc
x=['崔家峰';'孙乃喆';'安立群';'王洪武';'王玉杰';'高纯静';'崔家峰';'叶 鹏';'关泽满';'谢中华';'王宏志';'孙乃喆';'崔家峰';'谢中华'];
tabulate(x)
结果:
Value Count Percent
例:统计字符串元胞数组中各字符串出现的频数和频率。
clear;clc
x={'崔家峰';'孙乃喆';'安立群';'王洪武';'王玉杰';'高纯静';'崔家峰';'叶 鹏';'关泽满';'谢中华';'王宏志';'孙乃喆';'崔家峰';'谢中华'};
tabulate(x)
结果:
,