I understand that you want to use the elements of the matrix obtained after each iteration to calculate other values and plot the results.
Have a look at the following code, which uses the initial 'f' value to get the initial matrix, extracts its elements, updates the 'f' value in each iteration to get a new matrix and multiplies the new matrix with the previous one and so on.
ABCD =@(f) [2.44,0.288;(-7.2-(2.44/f)),(-0.44-(0.288/f))];
Lambda = 0.0001;
I0 = 2.43;
n2 = 10.5*10^(-16);
f(1) = 2.88;
M = eye(2);
M_ABCD = ABCD(f(i));
M = M*M_ABCD;
A = M(1,1);
B = M(1,2);
C = M(2,1);
D = M(2,2);
R(i) = (2*B) / (A - D);
Rho(i) = (2*B) / sqrt(4 - ((A+D)^2));
W(i) = sqrt((Rho(i)*Lambda)/pi);
q_inv(i) = (1/R(i)) +((j*Lambda)/(pi*(W(i)^2)));
q(i) = 1/q_inv(i);
f(i+1) = (W(i)^2)/(4*n2*(10^-2)*I0);
stable_check(i) = abs((A+D)/2);
I hope this helps you get the required output.