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

답변 (2개)

Matt J
Matt J 2018년 7월 15일
편집: Matt J 2018년 7월 15일

1 개 추천

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 2018년 7월 15일
편집: Jan 2018년 7월 15일

0 개 추천

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.

카테고리

도움말 센터 및 File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기

질문:

2018년 7월 15일

편집:

Jan
2018년 7월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by