Я разрабатываю функцию в 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
Буду благодарен за вашу помощь