How can i find indices of constant elements between 2 arrays?

2 vues (au cours des 30 derniers jours)
Jiahong Zou
Jiahong Zou le 31 Mai 2023
Commenté : Jiahong Zou le 2 Juin 2023
Hi, i have 2 enormous matrices A and B which are parameter relevant. With find() function i know which elements are non zero and with find(A-B) i know which elements are changed due to parameter. But how can i find out the indices of elements which remain constant?
  4 commentaires
Jiahong Zou
Jiahong Zou le 31 Mai 2023
Modifié(e) : Image Analyst le 31 Mai 2023
Yeah sure. For example,
A = [1 2 0; 0 1 0; 5 0 8]
A = 3×3
1 2 0 0 1 0 5 0 8
B = [ 1 3 0; 0 4 0; 5 0 6]
B = 3×3
1 3 0 0 4 0 5 0 6
How to find the indices of bold 1 and 5 ? Zero elements must be not included, because i tried
[row_zero, column_zero] = find(~(A - B))
row_zero = 6×1
1 2 3 3 1 2
column_zero = 6×1
1 1 1 2 3 3
And it directly went out of memory.
Image Analyst
Image Analyst le 31 Mai 2023
Exactly how big are your arrays? Hundreds of millions of elements or more?

Connectez-vous pour commenter.

Réponse acceptée

the cyclist
the cyclist le 31 Mai 2023
Do you mean the non-zero elements that are the same between the two arrays?
A = [1 2 0; 0 1 0; 5 0 8];
B = [1 3 0; 0 4 0; 5 0 6];
[r,c] = find(A==B & A~=0)
r = 2×1
1 3
c = 2×1
1 1

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by