У меня проблема с функцией в Matlab - PullRequest
0 голосов
/ 24 февраля 2019

Я разрабатываю функцию в Matlab, но у меня возникает следующая проблема:

Когда я назначаю переменную codigo для моей функции, Matlab показывает мне следующее сообщение

Error using ContLetrasTexto>shannon
Too many output arguments.

Error in ContLetrasTexto (line 111)
codigos = shannon(1, length(vectorprobabilidad), vectorprobabilidad, codigos);

Мой код следующий

% create the cell array of codes
codigos = cell(size(letra));
% call the recursive encoder function
codigos = shannon(1, length(vectorprobabilidad), vectorprobabilidad, codigos);

%Método shannon-Fano%
function shannon(inicio, fin, p, codes)

shannon_inicial = inicio;
shannon_final = fin;
suma_arriba = p(inicio);
suma_fin = p(fin);

while(shannon_inicial ~= shannon_final-1)
    if (suma_arriba > suma_fin)
        shannon_final = shannon_final - 1;
        suma_fin = suma_fin + p(shannon_final);
    else
        shannon_inicial = shannon_inicial + 1;
        suma_arriba = suma_arriba + p(shannon_inicial);
    end;
end;
for i = inicio:shannon_inicial
    p(i) = 0;
end;
for j = shannon_final:fin
    p(j) = 1;
end;
if(shannon_inicial-inicio+1 > 1)
      shannon(inicio,shannon_inicial,p,codes);
end;
if(fin-shannon_final+1 > 1)
      shannon(shannon_final,fin,p,codes);
end;

end

Буду благодарен за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...