Delete the center in an array?

4 views (last 30 days)
Hi everybody,
I have an array, let's say 6x6, how to delete the center of this array. I mean I want to delete 3x3 center of this array.
simple example, if we have an array 6x6 with elements:
6 5 2 2 1 9
4 3 0 1 2 8
5 5 6 2 1 7
9 8 0 1 0 6
4 4 1 1 0 5
2 1 1 2 3 4
and I want to delete the center which are:
6 2
0 1
I hope you could help me, I've tried several time to solve it but I couldn't.
Thanks in advance.
  4 Comments
Mohanned Al Gharawi
Mohanned Al Gharawi on 27 Oct 2017
Hi you're right, let's say that in different way. I want to delete specific elements(3x3 or 2x2 whatever) inside a big array, and convert the rest of this array into a vector. Thanks
Mohanned Al Gharawi
Mohanned Al Gharawi on 27 Oct 2017
let say I have an array (4x4): 6 5 2 2 4 3 0 1 5 5 6 2 9 8 0 1 then delete the inside or the center of this array, let's say the elements: 3 0 5 6 and the rest is: 6 5 2 2 4 1 5 2 9 8 0 1 as you see I want the rest as a vector. thanks

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 27 Oct 2017
‘I want to delete specific elements(3x3 or 2x2 whatever) inside a big array, and convert the rest of this array into a vector.’
That is straightforward:
A = [6 5 2 2 1 9
4 3 0 1 2 8
5 5 6 2 1 7
9 8 0 1 0 6
4 4 1 1 0 5
2 1 1 2 3 4];
Lidx = sub2ind(size(A), [3 3; 4 4], [3 3; 4 4]);
Center = A(Lidx) % View Elements
A(Lidx) = []; % Delete Elements, Return Vector
  2 Comments
Mohanned Al Gharawi
Mohanned Al Gharawi on 27 Oct 2017
Thanks a lot for your respond, there is a small problem cause the answer gives 34 elements and it should be 32 element. So I used: Lidx = sub2ind(size(A), [3 3; 4 4], [3 4; 4 3]); instead of yours and it gave me the right answer; anyhow your code was so helpful for me. Thanks a lot again.
Star Strider
Star Strider on 27 Oct 2017
As always, my pleasure.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!