问题描述
一个数组中有多个重复元素, 如{'篮球', '足球', '乒乓球', '足球', '乒乓球', '足球', '排球'}
, 如何统计每种球类的数量? (请思考几秒钟!!)
一种可行的方法
- 使用
unique()
函数构造球类字典(没有重复项), - 使用
strcmp()
函数和find()
函数依次判断balls
中每个元素所属类别, 增加相应类别数量.
代码如下:
balls = {'篮球', '足球', '乒乓球', '足球', '乒乓球', '足球', '排球'};
dict_ball = unique(balls);
count_ball = zeros(size(dict_ball));
for k = 1:length(balls)
idx = find(strcmp(balls{k}, dict_ball));
count_ball(idx) = count_ball(idx)+1;
end
运行结果如下:
使用pie()
, pie3()
绘制饼图:
pie(count_ball,dict_ball);
title('球类占比')
如果你有更好的方法, 欢迎在评论区分享!