Borrar filtros
Borrar filtros

How do I find the submatrix of a matrix?

16 visualizaciones (últimos 30 días)
Hena Hamid
Hena Hamid el 2 de Jun. de 2016
Editada: giannit el 15 de Ag. de 2021
I'm new to Matlab so bear with me.
If I have a 2D matrix A and a submatrix B of A. How can I check if B is a submatrix of A?
I basically want to search for matrix B in A.
An example with code would be appreciated :)

Respuesta aceptada

Jos (10584)
Jos (10584) el 2 de Jun. de 2016
Here is a simple for-loop that would work for 2D cases
A = magic(6)
B = A(2:3,4:5)
% engine
szA = size(A) ;
szB = size(B) ;
szS = szA - szB + 1
tf = false(szA) ;
for r = 1:szS(1)
for c = 1:szS(2)
tf(r,c) = isequal(A(r:r+szB(1)-1,c:c+szB(2)-1),B) ;
end
end
[rout,cout] = find(tf)
  1 comentario
Sloke Shrestha
Sloke Shrestha el 14 de Jun. de 2019
Hello,
Could you explain how this algorithm works?
Thank you!

Iniciar sesión para comentar.

Más respuestas (1)

giannit
giannit el 15 de Ag. de 2021
Editada: giannit el 15 de Ag. de 2021
[R,P] = ismember(B,A)
if R contains all ones then B is a submatrix of A and P contains the indices of A where B is located, ie A(P) = B

Categorías

Más información sobre Matrices and Arrays 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