how to make function compute the diagram letters in plain and compute the total difference between each diagram in message and the static diagram such as 'an''an',

1 view (last 30 days)
how to compute the diagram frequancies in message and compute the differance between all diagrams in message and static diagram in english language ?
this function give me error in if statment how correct it ?
function [ total_diffr_diagram ] = digram_diffr( plain )
Bigram_out = bigramfreq( plain ); % compute the frequancy of each letter in my plain
static_bigram=xlsread('static_frq.xlsx','double letters'); % read the static frcquancies of digram letters in english language
words1 = cellstr([plain(1:end-1); plain(2:end)].');
diffr_AN=0;
diffr_AT=0;
diffr_ED=0;
diffr_EN=0;
diffr_ER=0;
diffr_ES=0;
diffr_HE=0;
diffr_IN=0;
diffr_ON=0;
diffr_OR=0;
diffr_RE=0;
diffr_ST=0;
diffr_TE=0;
diffr_TH=0;
diffr_TI=0;
for i=1:size(words1,1)
if (strcmpi( words1(i,1), 'an'))==1
diffr_AN = abs(static_bigram(1,1)-Bigram_out(1,2));
elseif (strcmpi( words1(i,1), 'at'))==1
diffr_AT = abs(static_bigram(2,1)-Bigram_out(2,2));
elseif (strcmpi(words1(i,1), 'ed'))==1
diffr_ED = abs(static_bigram(3,1)-Bigram_out(3,2));
elseif (strcmpi(words1(i,1), 'en'))==1
diffr_EN = abs(static_bigram(4,1)-Bigram_out(4,2));
elseif (strcmpi(words1(i,1), 'er'))==1
diffr_ER = abs(static_bigram(5,1)-Bigram_out(5,2));
elseif (strcmpi(words1(i,1), 'es'))==1
diffr_ES = abs(static_bigram(6,1)-Bigram_out(6,2));
elseif (strcmpi(words1(i,1), 'he'))==1
diffr_HE = abs(static_bigram(7,1)-Bigram_out(7,2));
elseif (strcmpi(words1(i,1), 'in'))==1
diffr_IN = abs(static_bigram(8,1)-Bigram_out(8,2));
elseif (strcmpi(words1(i,1), 'on'))==1
diffr_ON = abs(static_bigram(9,1)-Bigram_out(9,2));
elseif (strcmpi(words1(i,1),'or'))==1
diffr_OR = abs(static_bigram(10,1)-Bigram_out(10,2));
elseif (strcmpi(words1(i,1),'re'))==1
diffr_RE = abs(static_bigram(11,1)-Bigram_out(11,2));
elseif (strcmpi(words1(i,1), 'st'))==1
diffr_ST = abs(static_bigram(12,1)-Bigram_out(12,2));
elseif (strcmpi(words1(i,1), 'te'))==1
diffr_TE = abs(static_bigram(13,1)-Bigram_out(13,2));
elseif (strcmpi(words1(i,1), 'th'))==1
diffr_AT = abs(static_bigram(14,1)-Bigram_out(14,2));
elseif (strcmpi(words1(i,1),'ti'))==1
diffr_TI = abs(static_bigram(15,1)-Bigram_out(15,2));
end
end
total_diffr= [diffr_AN diffr_AT diffr_ED diffr_EN diffr_ER diffr_ES diffr_HE diffr_IN diffr_ON diffr_OR diffr_RE diffr_ST diffr_TE diffr_TH diffr_TI];
total_diffr_diagram= sum(total_diffr);
end

Answers (0)

Categories

Find more on Verification, Validation, and Test in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!