Random number generator for matrix

My goal is to create a random number generator for a matrix of size 3x3, for n matrices (meaning as many n matrices as I designate) that will produce random numbers within the bounds [a,b] for the main diagonal of the matrix (elements 11, 22 and 33 in the matrix).
I invision the random generator, as described above, to generate a sample of something like:
matrix 1:
[2, 0, 0;
0, 90, 0;
0 , 0 ,1]
matrix 2:
[3, 0, 0;
0, 12, 0;
0 , 0 ,63]
matrix 3:..
matrix n
I appreciate any and all help with this.

 Accepted Answer

Hi!
Perhaps this:
bounds = [10 20] ; % [a b ]
randA = diag(diag(randi(bounds, 3,3)))
randA = 3×3
13 0 0 0 13 0 0 0 19
Hope this helps

4 Comments

Yes, thats perfect.
I suppose I can run a for loop that would produce n randomly generated matrices?
Yes
n = 4 ;
bounds = [10 20] ; % [a b ]
for ii = 1:n
randA = diag(diag(randi(bounds, 3,3)))
end
randA = 3×3
20 0 0 0 19 0 0 0 11
randA = 3×3
10 0 0 0 18 0 0 0 15
randA = 3×3
12 0 0 0 14 0 0 0 13
randA = 3×3
17 0 0 0 12 0 0 0 12
Appreciate your help (and genius) greatly.
Matthew

Sign in to comment.

More Answers (0)

Categories

Asked:

N/A
on 29 Jul 2022

Commented:

on 30 Jul 2022

Community Treasure Hunt

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

Start Hunting!