Randomly create lower and upper of matrix separately.

69 views (last 30 days)
I would like to create a randomly lower triangle of the matrix, and then create an upper triangle of matrix separately. After that I want to compound both of these in one matrix. More deeply, I want to control each cell in both half matrix.
Abe on 28 Dec 2014
I meant above, I want to create a random number in each cell of the lower - matrix, and then separately do the same with upper-matrix. The conclusion will be I have 1/2 of matrix (Upper matrix) generated alone, and the other half (lower matrix) generated lonely too. So when add the 2 halves I see one matrix with keeping the same generated numbers. I hope now it's clear. Thank you for asking.

Sign in to comment.

Accepted Answer

Shoaibur Rahman
Shoaibur Rahman on 28 Dec 2014
l = tril(rand(m,n),-1); % lower triangle
u = triu(rand(m,n),1); % upper triangle
d = diag(rand(1,m),0); % diagonal elements
A = l+u+d % final matrix, combined all
If you don't want to generate the diagonal elements separately, then replace either -1 in lower triangle or 1 in upper triangle by 0, and then A = l+u

More Answers (0)


Find more on Operating on Diagonal Matrices in Help Center and File Exchange



Community Treasure Hunt

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

Start Hunting!