Standard Deviation from a certain point
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
Image Analyst
2015-10-28
time is a built in function. You do not assign anything to it. Also, you never even initialized the badly-named time or n.
采纳的回答
Thorsten
2015-10-28
编辑:Thorsten
2015-10-28
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
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!