我想用字符串中char条目的频率构建直方图
Matlab版本7.14.0.739
这是我的代码
string = 'sadfjwopqiejroweifoxncvpowoirjqwerr';
map = containers.Map();
for i = 1:length(string) - 1
if (isKey(map, string(i) ))
map(string(i)) = map(string(i)) + 1;
else
map(string(i)) = 1;
end
end
bar(cell2mat(keys(map)), cell2mat(values(map)) );
我收到了一个错误:
使用条形码时出错(第51行)
必须提供Y数据或X和Y数据作为第一个参数。
lab4中的错误(第11行) bar(cell2mat(keys(map)),cell2mat(values(map)));
怎么了?
答案 0 :(得分:3)
问题是bar
的第一个参数必须提供条形图的x值。
执行cell2mat(keys(map))
时,您只需创建一个长字符串,该字符串是所有键的串联,这是bar
的无效参数。
尝试做这样的事情:
bar(cell2mat(values(map)));
k = keys(map);
set(gca, 'XTick', 1:length(k));
set(gca, 'XTickLabel', k);