Find unique combinations of double and character elements

2 visualizaciones (últimos 30 días)
Maria
Maria el 10 de Ag. de 2014
Respondida: Yu Jiang el 10 de Ag. de 2014
I have a cell type variable with 3 columns and 500000 rows, here is an example:
c1 c2 c3
A={1994 'AACE' 2071
1994 'AACE' 30677
1994 'AAC' 1541
1994 'AAC' 2027
1994 'AAC' 7843}
I am applying the following code:
%Unique combinations of c1 and c2
[y,~,ind] = unique([num2str(c1) c2], 'rows'); %Problem
%Count occurences
c = accumarray(ind,1);
%Final variable
F = [y c];
But it gives me an error in the first row, because I am trying to find unique combinations of 'double' and 'char' elements. Can someone help me? Thanks
  2 comentarios
Yu Jiang
Yu Jiang el 10 de Ag. de 2014
Hi Maria
It would be easier to help you if you could show the exact error message.
-Yu
Maria
Maria el 10 de Ag. de 2014
Hi Yu,
it gives this error: Error using horzcat Dimensions of matrices being concatenated are not consistent.

Iniciar sesión para comentar.

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 10 de Ag. de 2014
Editada: Azzi Abdelmalek el 10 de Ag. de 2014
A={1994 'AACE' 2071
1994 'AACE' 30677
1994 'AAC' 1541
1994 'AAC' 2027
1994 'AAC' 7843};
c12=cellfun(@(x,y) [num2str(x) y],A(:,1),A(:,2),'un',0);
[y,ii,ind] = unique(c12) %Problem
c = accumarray(ind,1);
F = [A(ii,:) num2cell(c)]

Más respuestas (2)

Andrei Bobrov
Andrei Bobrov el 10 de Ag. de 2014
[y0,~,ii] = unique(A(:,2));
[y,~,i0] = unique([cell2mat(A(:,1)),ii],'rows')
F = [num2cell(y(:,1)),y0,num2cell(accumarray(i0,1))];
  1 comentario
Maria
Maria el 10 de Ag. de 2014
It gives the following error: Error using horzcat Dimensions of matrices being concatenated are not consistent.

Iniciar sesión para comentar.


Yu Jiang
Yu Jiang el 10 de Ag. de 2014
I believe both the answers by Andrei Bobrov and Azzi Abdelmalek are correct. The error message should be caused by your original definition of A. If you create A exactly as Azzi does, then there should be no problem.
By the way, they both use the function cellfun, which is very convenient for cell operations. More details can be found here (Documentation) .

Categorías

Más información sobre Graphics Object Programming en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by