容器的Matlab条形函数。地图

时间:2012-12-20 17:36:29

标签: matlab

我想用字符串中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)));

怎么了?

1 个答案:

答案 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);