Найдите максимальное значение в указанной области матрицы, а затем извлеките часть матрицы вокруг максимального значения.
Я пытаюсь извлечь конкретную область матрицы, а затем найти максимальное значение в этой области и извлечь значения вокруг него, чтобы сформировать новую матрицу 9x9.
Это то, что я нашел до сих пор, и я думаю, что это необходимо реализовать:
% extract region
BRegion = B(rowStart:rowEnd, colStart:colEnd);
% find max value and get its index
[value, k] = max(BRegion(:));
[i, j] = ind2sub(size(BRegion), k);
% move indexes to correct spot in matrix
i = i + rowStart-1;
j = j + colStart-1;
после того, как максимальное значение было найдено в регионе с его индексом, как мне построить новую матрицу, взяв значения в области 9x9 вокруг нее и используя максимальное значение в качестве центра?
1 ответ
Решение
% extract region
rowstart = 300;
rowend = 500;
colstart = 3500;
colend = 4500;
BRegion = B(rowstart:rowend, colstart:colend);
% find max value and get its index
[value, k] = max(BRegion(:));
[i, j] = ind2sub(size(BRegion), k);
% move indexes to correct spot in matrix
i = i + rowstart-1;
j = j + colstart-1;
% creates new matrix
new_row_begin = i-4;
new_row_end = i+4;
new_col_begin = j-4;
new_col_end = j+4;
newmat = B(new_row_begin:new_row_end,new_col_begin:new_col_end);