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',

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

답변 (0개)

카테고리

도움말 센터File Exchange에서 Simulink Real-Time에 대해 자세히 알아보기

질문:

2021년 9월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by