compare between vector and cell

2 visualizaciones (últimos 30 días)
skysky2000
skysky2000 el 30 de Dic. de 2016
Comentada: Stephen23 el 31 de Dic. de 2016
Dear all, I have one vector (b) and one cell (a) as shown below: How I know how many times each number in vector b repeat it in a.
a=[{[1,9,79,3] [2,29,16,7,3] 3 [4,74,3] [5,73,79,3] [6,56,3] [7,3]}]
b=[ 79 3 74 10];
the expect result should be;
result= [ 2 7 1 0];
Thanks alot

Respuesta aceptada

KSSV
KSSV el 30 de Dic. de 2016
a=[{[1,9,79,3] [2,29,16,7,3] 3 [4,74,3] [5,73,79,3] [6,56,3] [7,3]}] ;
b=[ 79 3 74 10];
result= [ 2 7 1 0];
a_mat = cell2mat(a) ;
for i = 1:length(b)
result(i) = length(find(a_mat==b(i)))
end
  1 comentario
skysky2000
skysky2000 el 30 de Dic. de 2016
That perfect KSSV, I appreciate it .
Thankssss alot

Iniciar sesión para comentar.

Más respuestas (2)

Stephen23
Stephen23 el 30 de Dic. de 2016
A much simpler solution:
>> a = {[1,9,79,3],[2,29,16,7,3],3,[4,74,3],[5,73,79,3],[6,56,3],[7,3]};
>> b = [79,3,74,10];
>> sum(bsxfun(@eq,[a{:}],b(:)),2)
ans =
2
7
1
0
  1 comentario
skysky2000
skysky2000 el 30 de Dic. de 2016
Thanks Stephen, What about the second question?

Iniciar sesión para comentar.


skysky2000
skysky2000 el 30 de Dic. de 2016
Editada: Stephen23 el 30 de Dic. de 2016
Dear KSSV, another question. Can I take the cell that number repeat it on it with same loop. like for example:
a=[{[1,9,79,3] [2,29,16,7,3] 3 [4,74,3] [5,73,79,3] [6,56,3] [7,3]}] ;
b=[ 79 3 74 10];
result= [ 2 7 1 0];
cell-part 79= [{[1,9,79,3] [5,73,79,3]}]
cell_part 3 = [{[1,9,79,3] [2,29,16,7,3] 3 [4,74,3] [5,73,79,3] [6,56,3] [7,3]}];
cell_part 74 = {[4,74,3]}
cell_part 10 = {0};
thankss
  1 comentario
Stephen23
Stephen23 el 30 de Dic. de 2016
@skysky2000: that is not a good idea: naming variables dynamically will make your code slow, buggy, and hard to follow. Read this to know why:
A much better solution is to learn to use indexing, which is fast and efficient.

Iniciar sesión para comentar.

Categorías

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