Delete the center in an array?

5 次查看(过去 30 天)
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 个评论
Mohanned Al Gharawi
Mohanned Al Gharawi 2017-10-27
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 2017-10-27
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

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2017-10-27
‘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 个评论
Mohanned Al Gharawi
Mohanned Al Gharawi 2017-10-27
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by