Borrar filtros
Borrar filtros

How to find out the location difference of nonzero entries in two sparse matrices?

1 visualización (últimos 30 días)
Hello, All,
I have two sparse matries which have the same size. I know every nonzero entry in A must correspond to a nonzero entry in B, but some of nonzero entries in B which correspond to zero entries in A. For example, A=[0 1 0 2;3 0 0 4;0 5 6 0]; B=[0 1 0 2;3 7 0 4;8 5 6 0]. I want to find out the location of nonzero entries in B which correspind to zero entries in A. The answer to this example is: (2, 2) and (3, 1). Their correspinding entries are 7 and 8 in B.
Thanks.
Benson

Respuesta aceptada

Stephan
Stephan el 23 de Feb. de 2019
Hi,
this are not sparse matrices. However you find the locations given as row and column values and the corresponding values with:
A=[0 1 0 2;3 0 0 4;0 5 6 0];
B=[0 1 0 2;3 7 0 4;8 5 6 0];
[row, col] = find(A~=B)
vals = B(A~=B)
results in:
row =
3
2
col =
1
2
vals =
8
7
which is exactly the desired result.
Best regards
Stephan
  2 comentarios
Benson Gou
Benson Gou el 24 de Feb. de 2019
Hi, Stephan,
Thanks for your response. It is very good. How about the following example?
A=[0 1 0 2;3 0 0 4;0 5 6 0];B=[0 2.43 0 1.09;4.97 7.30 0 3.3;8.03 5.43 9.12 0];
The locations of nonzero entries in A and B are the same (but their values are different) except (2,2) and (3,1), their values are 7.30 and 8.03.
Our real case is like this. Thanks a lot for your great help.
Benson

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Particle & Nuclear Physics en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by