1

次のような 2 つの列に約 1,000 万の一意の単語とその頻度を含む大きなテキスト ファイルがあります。

apple 10
banana 21
pineapple 7
orange 9
...

Y軸に頻度、X軸に単語を入れてグラフをプロットしたいと思います。「load」コマンドを使用しましたが、機能していないようです。次のエラーが表示されます。

Error using ==> load
Unknown text on line number 1 of ASCII file C:\Users\..\Desktop\inputdata.txt
"aa"

グラフをプロットする方法の解決策はありますか?

4

2 に答える 2

1

importdataたとえば、次のようにします。

 a=importdata('inputdata.txt')

a.data- 数値ベクトルを出力します。[10,21,...]

a.textdataapple- 、、bananaなど の単語を含むセル配列を出力します

したがって、頻度に従って並べ替えたい場合は、次のようにします。

[b idx]=sort(a.data,'descend')
plot(a.data(idx));

別のオプションはbarh、次のように使用することです。

[b idx]=sort(a.data)
barh(a.data(idx));
set(gca,'yticklabel',a.textdata(idx)) 

ここに画像の説明を入力

ただし、これは 1,000 万語ではなく、限られた単語リストにのみ適しています...

于 2013-02-04T07:38:47.550 に答える
0

ファイルを読み込めません.txt。などのファイル I/O 関数を使用する必要がありますtextscan

fid = fopen('inputdata.txt');
data = textscan(fid, '%s%f')
fclose(fid);

data1x2セルになります。内容は次のとおりです。

<4x1 cell>  [10;21;7;9]

data{1,1}、つまり 4x1 セルは次のようになります。

'apple'
'banana'
'pineapple'
'orange'

次のように文字列にアクセスできます。

data{1,1}(2) 

を出力します'banana'

そして、次のように数値にアクセスします。

data{1,2}(2)

これはバナナに対応する数です。

于 2013-02-04T07:38:49.820 に答える