Borrar filtros
Borrar filtros

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.

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