MATLAB Answers

Extract upper diagonal half in a large cell array and replace rest with NaN

24 views (last 30 days)
SMA
SMA on 3 Apr 2016
Commented: SMA on 3 Apr 2016
Hello,
I have a very large cell array and want to select upper diagonal from it and replace the rest with NaNs. For example, if I have a 5x5 cell array, I'd like to get a result similar to;
1,1 1,2 1,3 1,4 1,5
2,1 2,2 2,3 2,4 NaN
3,1 3,2 3,3 NaN NaN
4,1 4,2 NaN NaN NaN
5,1 NaN NaN NaN NaN

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 3 Apr 2016
A=[1 2 3 4; 5 6 7 8; 9 10 11 12;13 14 15 16]
ii=ones(size(A))
idx=rot90(tril(rot90(ii)),-1);
A(~idx)=nan
  4 Comments

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!