Azzera filtri
Azzera filtri

How do I find the submatrix of a matrix?

16 visualizzazioni (ultimi 30 giorni)
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 :)

Risposta accettata

Jos (10584)
Jos (10584) il 2 Giu 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 Commento
Sloke Shrestha
Sloke Shrestha il 14 Giu 2019
Hello,
Could you explain how this algorithm works?
Thank you!

Accedi per commentare.

Più risposte (1)

giannit
giannit il 15 Ago 2021
Modificato: giannit il 15 Ago 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

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by