我在Matlab中的函数有问题

时间:2019-02-24 02:28:09

标签: windows matlab

我正在开发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

感谢您的帮助

0 个答案:

没有答案