Save several results from recursive function
Mostrar comentarios más antiguos
I have written some code that that takes a textfile and applies the huffman algorithm and constructs a "Huffman tree" using nested cell arrays.
Basically I have my cell array G which of size 1x2, in turn containing 1x2 cell arrays and so on until it reach the end element which is of class char.
For example G{1}{1}{1}{1}{1}{1} = 'h' which tells me that the codeword for h is 00000 (G{1} is the root).
Now I want to parse my cell array G so I can process the data easier. Basically I want to put my data in another cell array or table like
x y
char1 codeword1
char2 codeword 2
and so on...
For this I have a recursive function
function y = parsecell(c,s)
if nargin==1
s = inputname(1);
end
for i=1:numel(c)
if iscell(c{i}) && ~isempty(c{i})
parsecell(c{i},[s subs(i,size(c))])
else
disp([s(3:end) subs(i,size(c)) ' = ' c{i}])
end
end
end
which gives me outputs like
0 0 0 0 0 = h.
for every end element in G.
I'm struggling with somehow creating my new cell array or table. For example I was thinking that I could replace disp() with something like
y{end+1,1} = [s(3:end) subs(i,size(c)) ' = ' c{i}];
but I can't get it to work.
Any help is appreciated!
2 comentarios
Walter Roberson
el 30 de Abr. de 2021
You are passing the numeric value of i as the first parameter of subs() but the first parameter must be a symbolic function or symbolic expression, unless you have a sufficiently old version of MATLAB in which case a character vector was also a possibility.
BYQQY
el 1 de Mayo de 2021
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Multidimensional Arrays en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!