Filter löschen
Filter löschen

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

2 Ansichten (letzte 30 Tage)
William
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

Akzeptierte Antwort

Mischa Kim
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
  1 Kommentar
William
William am 10 Mär. 2014
V2 = subs(V2,x,q) after i remove the substitution part it works

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

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!

Translated by