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에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!