Borrar filtros
Borrar filtros

Compare arrays to find common non zero indexes

2 visualizaciones (últimos 30 días)
lucksBi
lucksBi el 4 de Ag. de 2017
Comentada: lucksBi el 6 de Ag. de 2017
Hey I have one 2d and one cell array like this:
A=[14, 1, 0,15;
1, 2, 4, 0;
3, 0, 0, 0;
14, 5, 0, 0;
0,12, 4, 0]
x={[2,3,4,5];[1,3,4,5];[1,2,4,5]}
I want to find common non-zero elements in A based on X.
For example, firstly x{1,1}=[2,3,4,5] will be compared with A. As it is x{1,1} so all elements of x will be compared with 1st row in A. (first comparison will be row 1 and row 2 in A and common non zero index are 1 & 2 then next row 1 and row 3 and common non-zero index is 1 and similarly row 4 and row 5 will be compared) Then in same way for x{2,1} comparison will be between row 2 and rows 1,3,4 and 5 of A.
Thanks in advance
  2 comentarios
Jan
Jan el 4 de Ag. de 2017
Editada: Jan el 4 de Ag. de 2017
What have you tried so far? Which problems occurred? What is the wanted output for this example?
I do not understand:
(first comparison will be row 1 and row 2 in A and common non zero
index is 2 then next row 1 and row 3 and common non-zero indexes are
1 and 2 and similarly row 4 and row 5 will be compared)
lucksBi
lucksBi el 4 de Ag. de 2017
I have edited my question.. Sorry for confusion

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 4 de Ag. de 2017
Editada: Jan el 5 de Ag. de 2017
A=[14, 1, 0,15;
1, 2, 4, 0;
3, 0, 0, 0;
14, 5, 0, 0;
0,12, 4, 0];
x = {[2,3,4,5]; [1,3,4,5]; [1,2,4,5]};
result = cell(size(x));
for k = 1:numel(x)
Ak = A(k, :); % Specified row
xk = x{k};
D = cell(1, numel(xk));
for r = 1:numel(xk)
D{r} = find(Ak & A(xk(r), :)); % Or: Ak .* A(xk(r), :)
end
result{ix} = D;
end
UNTESTED
  3 comentarios
Jan
Jan el 5 de Ag. de 2017
I've edited the answer. Does it create the wanted output?
lucksBi
lucksBi el 6 de Ag. de 2017
Yes thanks alot for helping.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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