Compare arrays to find common non zero indexes

2 ビュー (過去 30 日間)
lucksBi
lucksBi 2017 年 8 月 4 日
コメント済み: lucksBi 2017 年 8 月 6 日
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 件のコメント
lucksBi
lucksBi 2017 年 8 月 4 日
I have edited my question.. Sorry for confusion

サインインしてコメントする。

採用された回答

Jan
Jan 2017 年 8 月 4 日
編集済み: Jan 2017 年 8 月 5 日
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 件のコメント
lucksBi
lucksBi 2017 年 8 月 6 日
Yes thanks alot for helping.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Find more on Multidimensional Arrays in Help Center and File Exchange

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by