Matlab, определите подматрицу

У меня есть матрица 10x10 с кучей нулей и элементом со значением 1. Я пытаюсь создать подматрицу с элементом 1 и его окружением.

Проблема:

введите здесь описание изображения

Это всего лишь пример, элемент «1» размещается в любом месте матрицы. Я понимаю, что могу найти свой элемент, используя find find(MATRIX==1).

Как определить мою подматрицу 3x3?


person user3503856    schedule 06.04.2014    source источник


Ответы (1)


Вам нужно использовать «найти», чтобы получить индексы этого элемента «1» и построить из них желаемую матрицу. Что-то вроде:

[row, col] = find(MATRIX==1);
subMatrix = MATRIX(row-1:row+1, col-1:col+1);

Конечно, вам может понадобиться проверить, что элемент «1» не находится на границе МАТРИЦЫ (т.е. строка-1, строка+1, столбец-1, столбец+1 не выходят за границы).

Лучший.

person E. Valencia    schedule 06.04.2014
comment
Спасибо за быстрый ответ, ценю. - person user3503856; 06.04.2014