How can I find indices?
Mostrar comentarios más antiguos
I have two matrices:
A=[1 2 3 3 1 1 2 1;
1 1 1 2 2 3 2 3];
B=[2 1;
1 3];
The output matrix will be either
indx=[2, 6];
or
indx=[0 1 0 0 0 1 0 0];
Is there any smart way? I can definately solve it by using loop and conditional statement.
Appreciated!
2 comentarios
KSSV
el 27 de Mayo de 2021
What is output matrix?
Respuesta aceptada
Más respuestas (1)
Image Analyst
el 27 de Mayo de 2021
Explain to me how you got [2,6] because it's not obvious to me. Your tag says "matches" and to find B in A, you can do this:
A=[1 2 3 3 1 1 2 1;
1 1 1 2 2 3 2 3];
B=[2 1;
1 3];
[rowsA, colsA] = size(A);
[rowsB, colsB] = size(B);
counter = 1;
index = [];
for col = 1 : (colsA - colsB + 1)
subA = A(:, col : col + colsB - 1)
if isequal(subA, B)
index(counter) = k;
end
end
index
but you can see your B never appears anywhere in your A. Are you perhaps just looking at the top row of each? But even that will not work because [2,1] occurs only at column 7-8.
Categorías
Más información sobre Generate Test Data en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!