Как создать все возможные подматрицы из большой матрицы, сдвигая ровно одну строку и один столбец - PullRequest
0 голосов
/ 02 января 2019

Я работаю над проблемой матрицы, где у меня есть матрица 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)]

A (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)]

Как-то так, я могу извлечь первый вывод, но не все выходные enter image description here

1 Ответ

0 голосов
/ 02 января 2019

Это должно позволить вам иметь все подматрицы в массиве ячеек 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
...