我有一个文档,想要在Word VBA中获取每个角色的香农熵。我已经为每个角色计算了香农熵,但我不知道如何将这些信息放在单词VBA中并总结。
每个角色的香农熵
Shannon entropy http://www.bearcave.com/misl/misl_tech/wavelets/compression/shannon2.jpg
Space,0.1859
A 0.0856
B,0.0139
C,0.0279
D,0.0378
E,0.1304
F,0.0289
G,0.0199
H,0.0528
I,0.0627
J,0.0013
K,0.0042
L,0.0339
M,0.0249
N,0.0707
O,0.0797
P,0.0199
Q,0.0012
R,0.0677
S,0.0607
T,0.1045
U,0.0249
V,0.0092
W,0.0149
X,0.0017
Y,0.0199
Z,0.0008
我想要的是什么
今天是美好的一天
The Shannon entropy of the characters in this document is 1.2798542258337
答案 0 :(得分:1)
嗯,据我所知,你总共有27个字符,每个字符都有一个预定值,你想简单总结一下吗?
让我们从变量开始:
dim characters(1 to 27) as double
dim x as integer 'for looping
dim total as double 'The final value
定义值:
characters(1) = 0.1859 'space
characters(2) = 0.0856 'A
characters(3) = 0.0139 'B
characters(4) = 0.0279 'C
characters(5) = 0.0378 'D
'ETC.
填好阵列后
for x = 1 to 27
total = total + characters(x)
next
现在,如果你想变得更加疯狂,请告诉我。例如,它可以以一种方式写入它,它将读取满是数据的表,然后计算该值。
对于输出,它实际上取决于您希望输出的显示位置。要直接在文档中显示它:
ActiveDocument.Paragraphs.add
ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).range.text = "The Shannon entropy of the characters in this document is" & total
如果您已经拥有所有答案,我会更加好奇地知道您为什么需要VBA。好像计算器就足够了?