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 :}

Antworten (2)

Matt J
Matt J am 15 Jul. 2018
Bearbeitet: Matt J am 15 Jul. 2018

1 Stimme

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 am 15 Jul. 2018
Bearbeitet: Jan am 15 Jul. 2018

0 Stimmen

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.

Kategorien

Gefragt:

am 15 Jul. 2018

Bearbeitet:

Jan
am 15 Jul. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by