how to stop overwriting a matrix in a for loop in matlab
조회 수: 2 (최근 30일)
이전 댓글 표시
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
채택된 답변
KSSV
2021년 2월 9일
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
KSSV
2021년 2월 9일
If the RHS is of size 2X2 use:
M = zeros(2,2,100) ; % give exact row and column size
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!