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!

 採用された回答

Andrei Bobrov
Andrei Bobrov 2013 年 11 月 3 日
編集済み: Andrei Bobrov 2013 年 11 月 3 日

2 投票

[ii,jj] = ndgrid(1:5);
k = abs(ii-jj)<=2;
B = A.*(k&fliplr(k));
ADD
A1 = A';
B = A1(k&fliplr(k));

その他の回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 11 月 3 日

2 投票

B=[A(1,3) A(2,2:4) A(3,2:5) A(4,2:4) A(5,3)]
Image Analyst
Image Analyst 2013 年 11 月 3 日

0 投票

Try this:
out = A(B~=0)

1 件のコメント

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 11 月 3 日
If A(5,3) is equal to 0,this will not work

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by