diagonal matrix with ones
古いコメントを表示
Hello I am trying to do a diagonal inferior matrix with a diagonal of ones but my diagonal have differentes valors. How do i do a matrix with diagonal of ones? Here is my code:
if true
% code
a=[6,9,7;6,2,0;1,8,3]
a=tril(a)
end
1 件のコメント
Daniel Shub
2013 年 3 月 8 日
What would be really helpful is if in addition to your example input you could tell us what you want the output to be.
回答 (7 件)
Sean de Wolski
2013 年 3 月 8 日
編集済み: Sean de Wolski
2013 年 3 月 8 日
eye(5)
?
more per clarification:
a = tril(magic(3));
a(logical(eye(size(a,1)))) = 1
Leah
2013 年 3 月 8 日
a(eye(3))=1;
like that?
3 件のコメント
Sean de Wolski
2013 年 3 月 8 日
You need the logical() around eye() or it will error.
Leah
2013 年 3 月 8 日
thanks Sean, I'm waiting on my license at my new job :)
Sean de Wolski
2013 年 3 月 8 日
I'm sure your friendly sales rep would be happy to set you up with a trial :) !
Cristian
2013 年 3 月 8 日
0 投票
2 件のコメント
Sean de Wolski
2013 年 3 月 8 日
See my more section. Where'd the 1/3 and the 8/3 come from?
n=size(a,1);
a(1:n+1:end)=1;
Miroslav Balda
2013 年 3 月 9 日
Your last comment explained how to construct the resulting matrix. You see, how important it is to precisely formulate your question.
Anew = diag(1./diag(A))'*tril(A)
Miroslav Balda
2013 年 3 月 9 日
There is even simpler solutionof your problem:
Anew = diag(diag(A))\tril(A)
カテゴリ
ヘルプ センター および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!