Как сопоставить вложенную матрицу, которая принадлежит большой матрице?

#matlab #for-loop #matrix

#matlab #цикл for #матрица

Вопрос:

Предположим, у меня есть 128 x 128 матрица, (скажем, A). У меня также есть 64 x 64 матрица (скажем, B). Матрица B находится в матрице A. Я хочу напечатать «найдено соответствие», когда матрица B найдена в матрице A.

thsd_submatrix — это матрица B, а обновленное основное изображение — это матрица A. Я создаю new_matrix ( 64 x 64 ) из 128 x 128 (A) матрицы и хочу сопоставить с «thsd_submatrix«.

 new_matrix = zeros(64,64);
for i=1:128
    for j=1:128
           new_matrix(1:64,1:64)=updated_mainImage(i:i 63,j:j 63);
        if(new_matrix==thsd_submatrix)
  

Комментарии:

1. это может помочь: mathworks.com/matlabcentral/answers / …

2. @AlexS1 я не понимаю, в чем дело.

3. Подход, который вы используете в своем коде, должен работать (хотя он может быть медленным). Просто рассмотрите возможность использования isequal(new_matrix,thsd_submatrix) вместо == . В качестве альтернативы добавьте all квалификаторы ( if может сделать это автоматически, я не уверен, но это не очень хороший стиль).