Unique Values based on 2 Variables

6 visualizaciones (últimos 30 días)
RDG
RDG el 7 de Jun. de 2013
This is a little complicated for me to explain, but I'll try my best. Suppose I have 2 variables, var1 and var2.
var1=[1 2 4]' %Column 1
var2(:,1)=[1 1 1 2 4 4 4]' %Column 1
var2(:,2)=[8 9 2 5 5 1 1]' %Column 2
My goal: For each value in var1, I want to refer to column 1 of var2 and find the unique number in column 2. (Forgive me, but even I find it difficult in explaining this. I will illustrate my objective)
Based on the code excerpt above,
In var1, the 1st value is 1. Compare it to var2 column 1 In var2, row 1-3 contains 1 and I wish to find the unique values in column 2.
(Answer: 8,9,2 when col1's value is 1)
(Answer: 5 when col1's value is 2)
(Answer: 5,1 when col1's value is 4)
Again, I am very sorry for this poor explanation.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 7 de Jun. de 2013
[a,b] = ismember(var2(:,1),var1);
out = [num2cell(var1), accumarray(b(a),var2(:,2),[],@(x){unique(x)})];
  1 comentario
RDG
RDG el 7 de Jun. de 2013
Thanks for the hint. I should be able to refine it from here.

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 7 de Jun. de 2013
Why do you want to hassle with cell arrays instead of regular numerical arrays, which would be a lot simpler?
  3 comentarios
Image Analyst
Image Analyst el 7 de Jun. de 2013
I don't understand where the 8, 9, and 2 came from. If var1 = 1, this occurs in col1 of var2 in rows 1, 2, and 3. The values in rows 1, 2, and 3 of col2 of var2 are 1 & 2, not 8, 9, and 2.
RDG
RDG el 7 de Jun. de 2013
Aye, sorrryy...I forgot to edit the question.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical 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