2

文字列内の 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)) );

どうしたの?

4

1 に答える 1

3

問題は、の最初の引数がbar棒グラフの x 値を提供する必要があることです。その場合cell2mat(keys(map))、すべてのキーを連結した長い文字列を作成するだけです。これは、 への無効な引数barです。

代わりに次のようにしてみてください。

bar(cell2mat(values(map)));
k = keys(map);
set(gca, 'XTick', 1:length(k));
set(gca, 'XTickLabel', k);
于 2012-12-20T19:33:19.543 に答える