How to compare the rows of small file with rows of large cell?

1 visualización (últimos 30 días)
chocho
chocho el 31 de Oct. de 2018
Comentada: chocho el 7 de Nov. de 2018
Hello guys, I want to compare the rows of 2 cells [cell1(627*1) and cell2 (126300*6)], and if they are equal get the columns of that overlapped row from cell2. Inputs:
Expected outputs:
Could anyone plz help me in this issue as i tried with is equal command but no results??
I appreciate any help!
  2 comentarios
chocho
chocho el 31 de Oct. de 2018
Editada: chocho el 31 de Oct. de 2018
PLz, any one can help me ?
chocho
chocho el 31 de Oct. de 2018
Plz, Can anyone else help me out???

Iniciar sesión para comentar.

Respuesta aceptada

KSSV
KSSV el 31 de Oct. de 2018
Check the below demo code.
% Generate random cells
cell1 = cell(10,1) ;
cell2 = cell(100,2) ;
for i = 1:size(cell1,1)
cell1{1} = rand(3,1) ;
end
for i = 1:size(cell2,1)
for j = 1:size(cell2,2)
cell2{i,j} = rand(10,1) ;
end
end
% GEt common
iwant = cell(size(cell2)) ;
for i = 1:size(cell2,1)
for j = 1:size(cell2,2)
for k = 1:size(cell1,1)
c = ismember(cell1{k},cell2{i,j}) ;
end
end
end
  21 comentarios
KSSV
KSSV el 31 de Oct. de 2018
iwant = [C(idx) c2(idx,2:end)] ;
chocho
chocho el 31 de Oct. de 2018
@KSSV Thanks a lot!

Iniciar sesión para comentar.

Más respuestas (1)

Guillaume
Guillaume el 31 de Oct. de 2018
I am certain we've answered similar questions from you in the past. By now, you should also know that pictures are useless for us and that actually attaching an example of your data is a lot more useful.
With cell arrays, you can use intersect to find which elements overlap between your two columns arrays. It's then trivia to construct your output from the 2nd and 3rd output argument of intersect.
Even easier, would be to convert your cell arrays to tables. The whole operation is then simply a call to innerjoin:
innerjoin(cell2table(UD1), cell2table(whateverthatothercellarrayisnamed), 'Keys', 1)
  3 comentarios
Guillaume
Guillaume el 31 de Oct. de 2018
In case you haven't noticed, I also gave you a very simple way to achieve what you want. Just one line of code needed:
innerjoin(cell2table(UD1), cell2table(whateverthatothercellarrayisnamed), 'Keys', 1)
chocho
chocho el 7 de Nov. de 2018
@Guillaume Thanks, This is also a good solution

Iniciar sesión para comentar.

Categorías

Más información sobre Random Number Generation 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