How to reconstruct a matrix?

3 次查看(过去 30 天)
i have
x = [8, 9, -3, 9, 5, -4, -1, 3, 10, 10]
y = [-6; 4; 4; -2; 2]
z = diag(y)
how can i reconstruct matrix z into this look?
z =
-6 0 0 0 0 8
0 4 0 0 0 9
0 0 4 0 0 -3
0 0 0 -2 0 9
0 0 0 0 2 5
8 9 -3 9 5 -4
is there other way than this?
z = [-6 0 0 0 0 8; 0 4 0 0 0 9; 0 0 4 0 0 -3; 0 0 0 -2 0 9; 0 0 0 0 2 5; 8 9 -3 9 5 -4]
  1 个评论
Rik
Rik 2021-5-13
Where are the lower values coming from? Do you just want to put the values of x on the lower and right edges?
What have you tried to put them there?

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2021-5-13
x = [8, 9, -3, 9, 5, -4, -1, 3, 10, 10];
y = [-6; 4; 4; -2; 2];
z = [diag(y), x(1:5).'; x(1:6)]
z = 6×6
-6 0 0 0 0 8 0 4 0 0 0 9 0 0 4 0 0 -3 0 0 0 -2 0 9 0 0 0 0 2 5 8 9 -3 9 5 -4
  2 个评论
Hearthy Tampol
Hearthy Tampol 2021-5-13
thanks! didn't know there are other ways.
may I also ask how could I change its elements in a certain row for particular numbers?
example, i am planning to change the 4th row of matrix z with the with the last 6 elements of vector a?

请先登录,再进行评论。

更多回答(1 个)

David Hill
David Hill 2021-5-13
z=diag([y;0]);
z(end,:)=x(1:length(z));
z(:,end)=x(1:length(z));

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by