Standard Deviation from a certain point

5 views (last 30 days)
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 Comments
Image Analyst
Image Analyst on 28 Oct 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 on 28 Oct 2015
Edited: confused on 28 Oct 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.

Sign in to comment.

Accepted Answer

Thorsten
Thorsten on 28 Oct 2015
Edited: Thorsten on 28 Oct 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

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!