You are on page 1of 5

clc

clear all
x=randi(10,4,4);
[n,m]=size(x)
h=zeros(1,m)
for column=1:m
alphabet=unique(x(:,column))
freq=zeros(size(alphabet))
for symbol=1:length(alphabet)
freq(symbol)=sum(x(:,column)==alphabet(symbol))
end
p=freq/sum(freq)
h(column)=-sum(p.*log2(p))
end

result:

n =

m =

h =

0 0 0 0

alphabet =

2
9
10

freq =

0
0
0

freq =

1
0
0

freq =

1
1
0
freq =

1
1
2

p =

0.2500
0.2500
0.5000

h =

1.5000 0 0 0

alphabet =

1
3
6
7

freq =

0
0
0
0

freq =

1
0
0
0

freq =

1
1
0
0

freq =

1
1
1
0
freq =

1
1
1
1

p =

0.2500
0.2500
0.2500
0.2500

h =

1.5000 2.0000 0 0

alphabet =

2
10

freq =

0
0

freq =

1
0

freq =

1
3

p =

0.2500
0.7500

h =

1.5000 2.0000 0.8113 0

alphabet =
2
5
9
10

freq =

0
0
0
0

freq =

1
0
0
0

freq =

1
1
0
0

freq =

1
1
1
0

freq =

1
1
1
1

p =

0.2500
0.2500
0.2500
0.2500

h =

1.5000 2.0000 0.8113 2.0000


>>

You might also like