用MATLAB绘制词频图
我有一个大的文本文件,其中包含大约1000万个独特的单词,它们的频率在两列中,如下所示:用MATLAB绘制词频图,matlab,import,frequency,word-frequency,Matlab,Import,Frequency,Word Frequency,我有一个大的文本文件,其中包含大约1000万个独特的单词,它们的频率在两列中,如下所示: 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" 有
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"
有没有关于如何绘制图形的解决方案?试试,例如:
a=importdata('inputdata.txt')
a.data
-将输出数值向量,[10,21,…]
a.textdata
-将输出一个包含单词的单元格数组,apple
,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))
data{1,1}(2)
data{1,2}(2)
然而,这只适用于有限的单词列表,而不是1000万 试试看,例如:
a=importdata('inputdata.txt')
a.data
-将输出数值向量,[10,21,…]
a.textdata
-将输出一个包含单词的单元格数组,apple
,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))
data{1,1}(2)
data{1,2}(2)
然而,这只适用于有限的单词列表,而不是1000万 无法加载
.txt
文件。您需要使用文件I/O功能,例如textscan
fid = fopen('inputdata.txt');
data = textscan(fid, '%s%f')
fclose(fid);
数据
将是一个1x2单元。内容包括:
<4x1 cell> [10;21;7;9]
您可以像这样访问字符串:
[b idx]=sort(a.data)
barh(a.data(idx));
set(gca,'yticklabel',a.textdata(idx))
data{1,1}(2)
data{1,2}(2)
将输出“香蕉”
并访问以下数字:
[b idx]=sort(a.data)
barh(a.data(idx));
set(gca,'yticklabel',a.textdata(idx))
data{1,1}(2)
data{1,2}(2)
将给您21,这是香蕉的对应数字。您无法加载
.txt
文件。您需要使用文件I/O功能,例如textscan
fid = fopen('inputdata.txt');
data = textscan(fid, '%s%f')
fclose(fid);
数据
将是一个1x2单元。内容包括:
<4x1 cell> [10;21;7;9]
您可以像这样访问字符串:
[b idx]=sort(a.data)
barh(a.data(idx));
set(gca,'yticklabel',a.textdata(idx))
data{1,1}(2)
data{1,2}(2)
将输出“香蕉”
并访问以下数字:
[b idx]=sort(a.data)
barh(a.data(idx));
set(gca,'yticklabel',a.textdata(idx))
data{1,1}(2)
data{1,2}(2)
我会给你21,这是香蕉的对应数字