Choosing Specific Elements from An Array

27 views (last 30 days)
Hi,
My problem is:
I have a matrix A. From it, I want to choose only some of the specific elements and place them in another array B at the specified locations. But, by default it is becoming of the same dimension as A, with zero at those locations. How to get only the non-zero elements at the specified locations with no zeros?
A=[1 2 3 4 5;
6 7 8 9 10;
11 12 13 14 15;
16 17 18 91 20;
21 22 23 24 25];
B(1,3)=A(1,3);
B(2,2:4)=A(2,2:4);
B(3,1:5)=A(3,1:5);
B(4,2:4)=A(4,2:4);
B(5,3)=A(5,3);
Thanking You!

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 3 Nov 2013
Edited: Andrei Bobrov on 3 Nov 2013
[ii,jj] = ndgrid(1:5);
k = abs(ii-jj)<=2;
B = A.*(k&fliplr(k));
ADD
A1 = A';
B = A1(k&fliplr(k));

More Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 3 Nov 2013
B=[A(1,3) A(2,2:4) A(3,2:5) A(4,2:4) A(5,3)]

Image Analyst
Image Analyst on 3 Nov 2013
Try this:
out = A(B~=0)

Community Treasure Hunt

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

Start Hunting!