Borrar filtros
Borrar filtros

error using unique function

34 visualizaciones (últimos 30 días)
Danielle Leblanc
Danielle Leblanc el 26 de Jul. de 2012
s is a cell matrix (178000x9) I want to find the unique values of s in the first column. ID=unique(s(:,1));
I received the following error. Error using cell/unique (line 95) Input A must be a cell array of string
what could be the reason?
  1 comentario
Sean de Wolski
Sean de Wolski el 26 de Jul. de 2012
If the first column is all non-numeric it would not be throwing that error. What is returned from:
iscellstr(s(:,1))

Iniciar sesión para comentar.

Respuesta aceptada

Mike Hosea
Mike Hosea el 26 de Jul. de 2012
Editada: Mike Hosea el 26 de Jul. de 2012
What type of data is in the cell array? When you use UNIQUE on a cell array, the only case that's supported is when the elements of the cell array are strings. Is that case not working for you?
>> c = {'abc','abc','def','defg'}';
>> unique(c(:,1))
ans =
'abc'
'def'
'defg'
  7 comentarios
Mike Hosea
Mike Hosea el 26 de Jul. de 2012
Yes, this is what we expected. You do not have a cell array of only strings. You can find the non-strings with
find(cellfun(@(x)~ischar(x),s))
You do not mention where this data came from. If it began as a
s = cell(m,n);
and was later partially populated, then you might resolve the problem by changing that to
s = repmat({''},m,n);
Danielle Leblanc
Danielle Leblanc el 26 de Jul. de 2012
Thanks this solved the problem

Iniciar sesión para comentar.

Más respuestas (1)

Wayne King
Wayne King el 26 de Jul. de 2012
Editada: Wayne King el 26 de Jul. de 2012
Is it a cell array of numeric values?
You can use cell2mat()
A = {1 5 9 ; 2 3 4; 2 4 5};
B = unique(cell2mat(A(:,1)));
  1 comentario
Danielle Leblanc
Danielle Leblanc el 26 de Jul. de 2012
column 1 contains names . it is non-numeric

Iniciar sesión para comentar.

Categorías

Más información sobre Cell Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by