How can I get the diagonal elements of a matrix to be 0's
古いコメントを表示
How can I get the diagonal elements of a matrix to have all 0's and 1's everywhere else?
採用された回答
その他の回答 (1 件)
dpb
2016 年 1 月 6 日
x=~eye(N);
5 件のコメント
Walter Roberson
2016 年 1 月 6 日
Note: that would be a result of type logical rather than a numeric type. x = double(~eye(N)) would be double precision.
dpb
2016 年 1 月 7 日
That wasn't a a given constraint! :) But, yes, is so...
dpb
2016 年 1 月 7 日
"x = double(~eye(N)) would be double precision"
or
x = ~eye(N)+0
is what I'd probably actually write, being in favor of minimal keystrokes as a general rule...no idea which might have a performance advantage for increasing N.
Walter Roberson
2016 年 1 月 7 日
I would probably use +0 as well, but writing double() explicitly is clearer to people about what is being done and why. People tend to expect that adding 0 will leave everything unchanged...
dpb
2016 年 1 月 8 日
In the forum if I'd bothered to do the conversion I'd've added a comment on the purpose. As was, I figured the expression alone did satisfy the question and the remainder could be "exercise for the student"...
カテゴリ
ヘルプ センター および File Exchange で Matrix and Vector Construction についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!