I have a matrix which size is mxm (square) variable and I wanna assign a mx1 matrix into the first matrix's diagonal. What kind of loop I have to write?

2 次查看(过去 30 天)
for example;
%m=matrix's row which is variable depends on the input
a=zeros(m)
b=[mx1]
I wanna assign b matrix into the a matrix's diagonal.
  3 个评论

请先登录,再进行评论。

采纳的回答

the cyclist
the cyclist 2013-5-19
编辑:the cyclist 2013-5-19
This is very easy, if the off-diagonal element are always zeros:
m = 5;
b = rand(m,1);
a = diag(b);
But if you want a more general way to insert b along the diagonal of any array a, then here's one way:
m = 5;
% Set up the array and vector:
a = magic(m);
b = rand(m,1);
% Insert vector into main diagonal of array
a(1:m+1:end) = b;
Another way to do the last step is:
a(logical(eye(m))) = b;

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by