try to keep track of the plot in a loop? how to do that?

1 view (last 30 days)
%what I am doing here is to generate series of matrices, and multiply them together, but i want to keep track of the matrix elements, i might use the plot wrong, or how to do that? can anyone help me? I am a starter of coding, thank you!
function MonodromyM
double q
syms x
V(x)=(1/sqrt(2*pi))*(1/0.5)*exp((-x^2)/(2*0.5^2));
V2(x)=diff(x,2);
M=[1 0;0 1];
for i=1:1000
q=2*pi*rand(1);
A=[1 1;-V2(q) 1-V2(q)];
M=M*A;
hold on
fprintf('%d\n', M(1,1))
fprintf('%d\n', M(1,2))
fprintf('%d\n', M(2,1))
fprintf('%d\n', M(2,2))
end

Accepted Answer

Mischa Kim
Mischa Kim on 9 Mar 2014
William, a couple of things. See inlined comments:
function M = MonodromyM() % M is outputted by function and available for further
% ...analysis, for example in the MATLAB command window
syms x
V = (1/sqrt(2*pi))*(1/0.5)*exp((-x^2)/(2*0.5^2));
V2 = diff(V,2); % Did you mean to compute the 2nd deriv. of V?
M(:,:,1)=[1 0;0 1];
for i = 1:10
q = 2*pi*rand(1);
V2 = subs(V2,x,q); % substitute x by current value for q
A = [1 1;-V2 1-V2];
M(:,:,i+1) = M(:,:,i)*A; % save values of M in a 3D array
% hold on
% fprintf('%d\n', M(1,1))
% fprintf('%d\n', M(1,2))
% fprintf('%d\n', M(2,1))
% fprintf('%d\n', M(2,2))
end

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!