How to pass control from one loop to the other loop
조회 수: 1 (최근 30일)
이전 댓글 표시
My aim is to alter a data sample in such a way that the sign of values in between 0.01 to next 0.01 are altered.
Like for example; if given sample is
{0.3,0.21,0.9,0.3,0.01,0.3,0.4,0.32,0.01,0.9,0.97}
My code has to give the output as
{0.3,0.21,0.9,0.3,0.01,-0.3,-0.4,-0.32,0.01,0.9,0.97}
So, I'm trying to write a nested loop to read the sample and alter the sign in between 0.01 to next 0.01
for n=1:100000
if u(n)=0.01
for m=n+1:10000
if u(m)=0.01
% switch to the original 'n' loop
end
u(m)=-1*u(m);
end
end
end
But, I'm unable to switch to the original loop. Anyone suggest, how can I switch between them ?
댓글 수: 0
채택된 답변
추가 답변 (2개)
Eng. Fredius Magige
2015년 10월 14일
try this
for n=1:100000 if(find(sample(:)==0.01,1)=<find(sample(:)==0.01,2)) % sample is your data num=-1*sample(:,n) else num=sample(:,n) end
Stephen23
2015년 10월 14일
편집: Stephen23
2015년 10월 14일
>> tol = 0.0005;
>> val = 0.01;
>> V = [0.3,0.21,0.9,0.3,0.01,0.3,0.4,0.32,0.01,0.9,0.97];
>> idx = abs(V-val)<tol;
>> idy = mod(cumsum(idx),2);
>> idz = (-1).^(idy&[false,idy(1:end-1)]);
>> V.*idz
ans =
0.3 0.21 0.9 0.3 0.01 -0.3 -0.4 -0.32 0.01 0.9 0.97
댓글 수: 2
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!