Compare arrays to find common non zero indexes

2 vues (au cours des 30 derniers jours)
lucksBi
lucksBi le 4 Août 2017
Commenté : lucksBi le 6 Août 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 commentaires
Jan
Jan le 4 Août 2017
Modifié(e) : Jan le 4 Août 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 le 4 Août 2017
I have edited my question.. Sorry for confusion

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 4 Août 2017
Modifié(e) : Jan le 5 Août 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 commentaires
Jan
Jan le 5 Août 2017
I've edited the answer. Does it create the wanted output?
lucksBi
lucksBi le 6 Août 2017
Yes thanks alot for helping.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by