Obtaining an updated diagonal Matrices

Good day everyone. Pls, can someone assist on generating a diagonal matrices from each row of a random matrix as: M=rand(N,2) where N=20 iterations =300 The matrices i want to generate, at first is, for iter=1:iterations for i=1:N generate a diagonal matrices of 2x2 from M i.e 20 diagonal matrices of size 2x2.
for the update matrices meaning the first ones are previous, so the update or current matrices should be for j=2:iterations-1 for i=1:N generate a 20 diagonal matrices of size 2x2 up to j, Let say something like P(i, ,j)=diag(, ,j) where P(i, ,j) are the current generated 20 diagonal matrices of 2x2 up to j. Thank you. Best regards,

 采纳的回答

N=20;
itr = 300;
i1 =...
bsxfun(@plus,bsxfun(@plus,1:4:4*N,[0;3]),reshape(0:4*N:(itr-1)*4*N,1,1,[]));
out = zeros(2,2,N,itr);
M=rand(N*itr,2);
out(i1) = M.';

1 个评论

I am much grateful Mr. andrei bobrov, big kudos. It really generated the matrices but i want to it, to be like if,
N=20;
iterations=300;
M=rand(N,2);
for iter=1:iterations
for i=1:N
G(i,:,1)=diag(M( ));
meaning it will generate a 20 diagonal matrices of 2x2 for the iter=1:300 and for i=1:N
then the next
for j=2:iter-1 or for j=2:299
for i=N
G(i,:,j)=diag(M(, ,j))
meaning for j=2:299 and for i=1:20 it will generate 20 diagonal matrices of 2x2 each iteration upto j . Instead of doing it one by one. Hope i put it clear. Once more thanks

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by