Как создать все возможные подматрицы из большой матрицы, сдвигая ровно одну строку и один столбец
Я работаю над проблемой матрицы, где у меня есть матрица m*n, и я хочу извлечь из нее все матрицы 5*5, сдвинув одну строку и столбец, но я не могу извлечь все матрицы 5*5, но только один раз. Можете ли вы помочь мне извлечь все матрицы?
Я могу извлечь используя основные операции, но как извлечь все подматрицы с помощью цикла
A=[(40 45 50 60 70 80), (10 12 15 17 18 20), (35 41 57 44 98 78), (45 74 11 2 36 78), (12 45 79 85 36 45), (1 5 8 78 47 3)]
А (1:5,1:5)
Пример ввода: [(40 45 50 60 70 80), (10 12 15 17 18 20), (35 41 57 44 98 78), (45 74 11 2 36 78), (12 45 79 85 36 45), (1 5 8 78 47 3)]
вывод: [(40 45 50 60 70), [(45 50 60 70 80), (10 12 15 17 18), (12 15 17 18 20), (35 41 57 44 98), (41 57 44 98 78), (45 74 11 2 36), (74 11 2 36 78), (12 45 79 85 36) ] (45 78 85 36 45)]
1 ответ
Это должно позволить вам иметь все подматрицы в массиве ячеек B
clear all;
A=[40 45 50 60 70 80; 10 12 15 17 18 20; 35 41 57 44 98 78; 45 74 11 2 36 78; 12 45 79 85 36 45; 1 5 8 78 47 3]
for i=1:size(A,1)-4
for j=1:size(A,2)-4
B{i,j}=A(i:i+4,j:j+4)
end
end