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 :)

 Akzeptierte Antwort

Jos (10584)
Jos (10584) am 2 Jun. 2016

1 Stimme

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 Kommentar

Sloke Shrestha
Sloke Shrestha am 14 Jun. 2019
Hello,
Could you explain how this algorithm works?
Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

giannit
giannit am 15 Aug. 2021
Bearbeitet: giannit am 15 Aug. 2021

0 Stimmen

[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

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by