how to stop overwriting a matrix in a for loop in matlab
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Reinhardt RADING
el 9 de Feb. de 2021
Comentada: Reinhardt RADING
el 9 de Feb. de 2021
Hello all,
i'm stuck with this code.
I am trying to get the value of M.
M is the product of three matrices, iterated and multiplied 100 times. please see below.
for n =1:100
y = OUT.lin.matin(:,:,n); %gets valiue from a stored array
%y is a unitary matrix
x = OUT.lin.db0(n); %gets valiue from a stored array
% x is a scalar
w =[exp(1i*x),exp(1i*-x)]; % creating the exponential
k = diag(w); % creating a diagonal matrix of W
M = y*k*y';
end
I think M overrides each iteration, but i would like to get the results from the 100 iterations. Kindly assist.
Thanks in advance.
0 comentarios
Respuesta aceptada
KSSV
el 9 de Feb. de 2021
M = zeros([],[],100) ; % give exact row and column size
for n =1:100
y = OUT.lin.matin(:,:,n); %gets valiue from a stored array
%y is a unitary matrix
x = OUT.lin.db0(n); %gets valiue from a stored array
% x is a scalar
w =[exp(1i*x),exp(1i*-x)]; % creating the exponential
k = diag(w); % creating a diagonal matrix of W
M(:,:,n) = y*k*y';
end
4 comentarios
KSSV
el 9 de Feb. de 2021
If the RHS is of size 2X2 use:
M = zeros(2,2,100) ; % give exact row and column size
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!