Borrar filtros
Borrar filtros

random matrix diagonal problem

2 visualizaciones (últimos 30 días)
yuval ohayon
yuval ohayon el 15 de Jul. de 2018
Editada: Jan el 15 de Jul. de 2018
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 :}

Respuestas (2)

Matt J
Matt J el 15 de Jul. de 2018
Editada: Matt J el 15 de Jul. de 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 el 15 de Jul. de 2018
Editada: Jan el 15 de Jul. de 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.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by