Arranging the cell array in the corresponding rows.

1 visualización (últimos 30 días)
pr
pr el 8 de Mayo de 2014
Editada: pr el 9 de Mayo de 2014
I have a cell array which has the following format: action (a1,a2,a3,...) and followed by the corresponding "id-number" like(01,02,03,.....) i want to generate an output in which all the unique "id-number" belongs to one group.
if true
c_in = {'a1ev01','a1ev02','a2ev01','a2ev02','a3ev01','a3ev02'}; % and so on....
% output
c_out = {'a1ev01','a2ev01','a3ev01';...
'a1ev02','a2ev02','a3ev02';}; % or in another format of the same form
end
  1 comentario
Cedric
Cedric el 8 de Mayo de 2014
Is there the same number of elements for each group/ID?

Iniciar sesión para comentar.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 9 de Mayo de 2014
c_in = {'a1ev01','a1ev02','a2ev01','a2ev02','a3ev01','a3ev02'};
ii = regexp(c_in,'\d*','match');
i1 = str2double(cat(1,ii{:}));
c_out = accumarray([i1(:,2),i1(:,1)],(1:numel(c_in))',[],@(x)c_in(x));
  1 comentario
pr
pr el 9 de Mayo de 2014
Editada: pr el 9 de Mayo de 2014
@Andrei Bobrov thanks for the help. Excellent solution

Iniciar sesión para comentar.

Más respuestas (1)

the cyclist
the cyclist el 8 de Mayo de 2014
Related to Cedric's question in his comment ... Is it a simple reshape?
c_out = reshape(c_in,2,[])
  2 comentarios
pr
pr el 8 de Mayo de 2014
it works only in the case for "2" "id-numbers" fails in the case when ther is a 3rd "id-number" or 4th and so on.
if true
c_in = {'a1ev01','a1ev03','a2ev01','a2ev02','a3ev03','a3ev02'};
end
Cedric
Cedric el 8 de Mayo de 2014
Editada: Cedric el 9 de Mayo de 2014
If there is always the same number of elements per group/ID and the order follows always the same schema, you (pr) can perform a reshape based on an appropriate number of rows or columns. If the second condition falls, there is a little more work but you can still store the outcome in a rectangular cell array. If both conditions fail, you must build a cell array of cell arrays.

Iniciar sesión para comentar.

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by