Как создать субматрицу (все 5 * 5) из матрицы в MATLAB? Это можно сделать, сдвинув ровно одну строку и один столбец. Я пробовал использовать следующий код, но я не получаю фактический результат. Здесь A - матрица ввода.
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
Теперь я получаю этот вывод:
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
B =
{
[1,1] =
40 45 50 60 70
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
}
B =
{
[1,1] =
40 45 50 60 70
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
[1,2] =
45 50 60 70 80
12 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 45
}
B =
{
[1,1] =
40 45 50 60 70
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
[2,1] =
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
1 5 8 78 47
[1,2] =
45 50 60 70 80
12 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 45
[2,2] = [](0x0)
}
B =
{
[1,1] =
40 45 50 60 70
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
[2,1] =
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
1 5 8 78 47
[1,2] =
45 50 60 70 80
12 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 45
[2,2] =
12 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 45
5 8 78 47 3
}
Но мне нужно, чтобы результат выглядел так:
40 45 50 60 70
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
45 50 60 70 80
12 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 45
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
1 5 8 78 47
12 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 45
5 8 78 47 3
Что я должен изменить в своем коде?