random matrix diagonal problem

hi,how can I generates random matrix (using rand command) that's only its diagonal is zeros im trying to something like this but it seems the syntax is wrong\
v=[0 0 0 0 0 ]
b=rand[5,5]
c=b(diag(v) ????
I want that "c" will be 5*5 matrix the numbers are random except the diagonal that should be zeroes thank :}

Answers (2)

Matt J
Matt J on 15 Jul 2018
Edited: Matt J on 15 Jul 2018
Here's another possibility. Its advantage is that it doesn't involve the creation of an additional matrix, although that would really only be important for larger matrix sizes.
c=rand(5);
c(1:6:end)=0;
Jan
Jan on 15 Jul 2018
Edited: Jan on 15 Jul 2018
Or:
c = rand(5,5) .* (1 - eye(5))
Matt J's method requires less arithmetic operations and is more powerful, because it allows to set the elements to any value.

Categories

Asked:

on 15 Jul 2018

Edited:

Jan
on 15 Jul 2018

Community Treasure Hunt

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

Start Hunting!