try to keep track of the plot in a loop? how to do that?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
William
am 8 Mär. 2014
Kommentiert: William
am 10 Mär. 2014
%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
0 Kommentare
Akzeptierte Antwort
Mischa Kim
am 9 Mär. 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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!