Standard Deviation from a certain point

5 visualizzazioni (ultimi 30 giorni)
confused
confused il 28 Ott 2015
Modificato: Thorsten il 28 Ott 2015
I have written a program where i am running a program to reach an equilibrium but i not want to find the std from the first point were it reaches N/2 till the end of the program i know i need to set up an index but i am not getting much luck on how to go about it can anyone help
N=34 %total number of particles
n=N % amount on left hand side
TIME = 200; % setting up array for time
NUMBER = zeros (200, 1); % setting up array for number
NUMBER (1) = n; % causing the plot to start at n or 4
for i = 2:TIME;
if n/N > rand(1) ; % if n/N is less than the random number generated take one from the left
n = n-1;
else n = n+1; % otherwise add one to the left
end
NUMBER(i) = n;
end
  2 Commenti
Image Analyst
Image Analyst il 28 Ott 2015
time is a built in function. You do not assign anything to it. Also, you never even initialized the badly-named time or n.
confused
confused il 28 Ott 2015
Modificato: confused il 28 Ott 2015
sorry i left out two first line in the program! i just edited it also i have taken out the time in my program it was left there from previous workings on the program.

Accedi per commentare.

Risposta accettata

Thorsten
Thorsten il 28 Ott 2015
Modificato: Thorsten il 28 Ott 2015
Your program is fine. After the loop, you just have to compute
i1 = find(NUMBER == floor(N/2), 1, 'first');
std(NUMBER(i1:end))
This is easier than trying to find i1 within the loop. If you like to do it in the loop, use
i1 = NaN;
for ...
if ~isnan(i1) && n == floor(N/2)
i1 = i;
end

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by