How to shift the element in diagonal matrix

As question mentioned, I created a matrix
v = [4 5 6 7]
diag(v)
then, I would like to have a matrix as [0 4 0 0; 0 0 5 0; 0 0 0 6; 7 0 0 0] also [0 0 0 4; 5 0 0 0; 0 6 0 0; 0 0 7 0] by using the command diag, is there any way to do?
Thank you !

 Accepted Answer

>>circshift(diag(v),1,2)
0 4 0 0
0 0 5 0
0 0 0 6
7 0 0 0
>>circshift(diag(v),-1,2)
0 0 0 4
5 0 0 0
0 6 0 0
0 0 7 0

1 Comment

Thanks a lot, your help is appreciated !
*ps: new to matlab

Sign in to comment.

More Answers (0)

Categories

Asked:

on 24 Mar 2018

Commented:

on 24 Mar 2018

Community Treasure Hunt

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

Start Hunting!