How can I search a binary array inside other bigger binary array?

For example I have the A array
A = [1 0 0 1 0,0 0 0 0 0,0 1 0 1 0,0 0 0 0 0]
I need to seach how many times is the B array in A.
B = [1 0,0 0]

2 Commenti

Jan
Jan il 26 Ott 2015
Modificato: Jan il 26 Ott 2015
Are you sure that both arrays are vectors? The commas might indicate, that you want matrices.
Would "4 times" be a satisfying answer?
No, you´re right, they are matrices. And yes, 4 times would be a satisfying answer.

Accedi per commentare.

 Risposta accettata

Thorsten
Thorsten il 6 Nov 2015
Modificato: Thorsten il 6 Nov 2015
A = [1 0 0 1 0;0 0 0 0 0;0 1 0 1 0;0 0 0 0 0]
B = [1 0;0 0]
Embed A into a larger matrix of nans because nlfilter sets boundary values to 0; the following code is just valid for 2x2 matrices B
A2 = nan(size(A)+2))
A2(2:end-1, 2:end-1) = A;
nnz(nlfilter(A2, [2 2], @(x) (isequal(x,B))))

3 Commenti

Thanks. That works perfect for my needs.
I have a problem with the code. If a change matrix B, for example:
B = [0 0;0 0]
I don´t get the right number of times this pattern is in matrix A (in this case it must be find "1". Could you help me?
Thanks

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Operators and Elementary Operations in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by