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

Risposte (2)

Matt J
Matt J il 15 Lug 2018
Modificato: Matt J il 15 Lug 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 il 15 Lug 2018
Modificato: Jan il 15 Lug 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.

Categorie

Richiesto:

il 15 Lug 2018

Modificato:

Jan
il 15 Lug 2018

Community Treasure Hunt

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

Start Hunting!

Translated by