%% Variables: % aa,bb and x:counters % bone: data of stress reading of a femer cantilevered with a different % weight over a period of time % % averages1:averages of each basline % averages2: x-coordinate where each jump occured
time=-1:0.004:260.916; load bone.mat % plot(time,bone) % grid % hold on bone2 = smooth(bone,750); figure plot(time,bone2,'g') hold on grid while length(averages1)<=17 && aa>=length(bone2) for x=1:1:70000; aa=x; bb=x+1; difference=abs(bone2(aa)-bone2(bb)); if difference <= .009 flat(d)=[difference]; mean(difference)=averages1; end
if difference >=.1 difference=abs(bone2(aa)-bone2(bb)); cc=length(bone2)-20000;
averages2(cc)=[find(bone2,max),find(bone2,min)] end end
I have written this code and it is supposed to find 17 averages and 17 jump points on the step function that gets plotted but it keeps looping after the 5th average. and I have no idea how to make the code find the jump points. Any help would be greatly appreciated.
No products are associated with this question.
You've got variables that aren't initialized, aa,d, and indices must be positive integers. 'difference' does not seem like a proper index. You clearly need to add an index, such as,
k = k+1;
(also initialize it) and change the line
averages1(k) = mean(difference);
You might have other problems with your code, for example, aa never changes which is another test to stay in the loop. Can't see how you ever get in the loop without initializing that one.