Azzera filtri
Azzera filtri

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

2 visualizzazioni (ultimi 30 giorni)
%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

Risposta accettata

Mischa Kim
Mischa Kim il 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

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by