How to create Sub matrix(all 5*5) from a Matrix in MATLAB? This can be done by shifting exactly one row and one column.I have tried with following code but i'm not getting the actual output.Here A is the input matrix.
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
Now i,m getting this output:
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 3B =
{
[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
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
}
But I need the output look like this:
40 45 50 60 70
10 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 3645 50 60 70 80
12 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 4510 12 15 17 18
35 41 57 44 98
45 74 11 2 36
12 45 79 85 36
1 5 8 78 4712 15 17 18 20
41 57 44 98 78
74 11 2 36 78
45 79 85 36 45
5 8 78 47 3
What i have to change in my code?
#matlab