MATLAB: Creating matrix with the same size for different variables

MATLABoverwriting matrix for loop

hello
i want to creat N number of matrix 2×2 from different variabless then plottting the elemnt (2,1)./(1,1) using for loop but it i always get the last matrix only which overwrite all the previous ones.
who can help me please ?
x=linspace(eps,pi/2,200)
D11=1+sin(x)-cos(x);
D12=1-sin(x)-cos(x);
D21=1-sin(x)+cos(x);
D22=1+sin(x)+cos(x);
for i=1:numel(x)
D=0.5.*[D11(1,i) D12(1,i) ; D21(1,i) D22(1,i)];
end
plot(D(2,1)./D(1,1),x)

Best Answer

Try this:
x=linspace(eps,pi/2,200);
D11=1+sin(x)-cos(x);
D12=1-sin(x)-cos(x);
D21=1-sin(x)+cos(x);
D22=1+sin(x)+cos(x);
for i=1:numel(x)
D(:,:,i) = 0.5.*[D11(1,i) D12(1,i) ; D21(1,i) D22(1,i)];
end
figure
semilogy(x, squeeze(D(2,1,:)./D(1,1,:)))
grid
Experiment to get the result you want.