Unique rows of 2 cells with 2 columns each.

2 visualizaciones (últimos 30 días)
BdS
BdS el 13 de Sept. de 2019
Comentada: Guillaume el 18 de Sept. de 2019
Hi
I have got 2 cells with 2 columns each:
IdxMembers(1636x2)
IdxMembers2(1630x2)
I am looking of the unique values of each cells in form of (nr. of unique values in first row x 2 columns)
I tried the following 2 codes:
unique(vertcat(IdxMembers,IdxMembers2),'rows')
and
unique(vertcat(IdxMembers,IdxMembers2))
I get the unique values in dim (nr. of unique values x 1 column). However, I would like get the output with the second column.
Do you have any suggestions?
  7 comentarios
BdS
BdS el 17 de Sept. de 2019
I am sorry for the confusion.
I mean as your wrote in your first example. But with the corresponding value in column 1
Thanks
BdS
BdS el 17 de Sept. de 2019
The unique values should be based on the information based on column 1

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 13 de Sept. de 2019
I tried the following 2 codes: unique(vertcat(IdxMembers,IdxMembers2),'rows')... I get the unique values in dim (nr. of unique values x 1 column).
No, you really should have gotten 2 column output, as in the example below. Something about your situation must be different from what you are describing.
>> [IdxMembers,IdxMembers2] =deal( randi(3,4,2) , randi(3,3,2))
IdxMembers =
2 1
2 2
3 2
3 2
IdxMembers2 =
3 3
3 2
1 1
>> unique(vertcat(IdxMembers,IdxMembers2),'rows')
ans =
1 1
2 1
2 2
3 2
3 3

Más respuestas (1)

Guillaume
Guillaume el 17 de Sept. de 2019
Editada: Guillaume el 17 de Sept. de 2019
merged = [new; old]; %simpler way to write vertcat(new, old)
[~, row] = unique(merged(:, 1)); %get row index of unique values in the 1st column
result = merged(row, :) %extract these rows
  4 comentarios
BdS
BdS el 18 de Sept. de 2019
thank you for your explanation.
Option 1 seems to more efficient: 0.007129 seconds in comparison with 0.028908
Guillaume
Guillaume el 18 de Sept. de 2019
Option 1 seems to more efficient: 0.007129 seconds
As long as you consider efficiency to be just the execution speed and that you care about a few milliseconds difference.
Indeed string arrays may have a slight speed impact but if you consider that if you'd used string arrays to start with your original code would have worked straight away but instead it took you 4 days to resolve the problem, in term of development time string arrays would have won hands down.

Iniciar sesión para comentar.

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by