a=tabulate(b); % b为需要绘制饼图的原始数据列,生成新的一个矩阵a
label={'1','2','3'} % 设定饼图每块扇形代表的内容
percent=num2str(a(:,3),'%1.2f'); %提取a的第三列,并保留两位小数
percent=[repmat(blanks(2),m,1),percent,repmat('%',m,1)];
percent=cellstr(percent);
Label=strcat(label,percent');
pie(a(:,2),Label);
title(['标题']); % 设置饼图的标题

解释一下tabulate这个函数,它返回的矩阵有3列。第一列为原始数据列的每个项的值,第二列为第一列每个项出现的频数,第三列为第一列每个项所占的百分数。其中,第一列是按数值大小排列的。如下图所示。

【Matlab】绘制饼状统计图-LMLPHP

04-27 00:59