using break to stop nested loop
조회 수: 4 (최근 30일)
이전 댓글 표시
X = [1 2 3 4 5 4 3 6 7 8 9 10 11 12 11 10 9 8 7 8 9 10 9 8 7 6 5 4 3 2 1 2 4 5 6 7 8 9 11 12 11 10 9 8 7 9 10 9 8 7 6 5 4 3 2 1];
I want to take out vectors which start when value greater than 2 and end value end less than 11. The resulting vectors will be [3 4 5 4 3 6 7 8 9 10 ] and [4 5 6 7 8 9], which will be kept in cell array.
The current code I tried saved only [4 5 6 7 8 9] in fwd cell array.
Could anyone please help me to save both vectors in the cell array? thank you.
clc; clear; close all
X = [1 2 3 4 5 4 3 6 7 8 9 10 11 12 11 10 9 8 7 8 9 10 9 8 7 6 5 4 3 2 1 1 2 4 5 6 7 8 9 11 12 11 10 9 8 7 9 10 9 8 7 6 5 4 3 2 1];
start = min(X)+2;
ed = max(X) -2;
m = length(X);
f = 1;
i = 2;
while i < m
k=1;
if X(i) >= start && X(i-1) <= start && X(i+1) > X(i)
a(k) = X(i);
for j = i+1:m-1
if X(j+1) > ed && X(j+2) >= X(j+1) && X(j) < X(j+1)
b (k) = X(j);
fwd{k} = [X(i):X(j)];
if ~isempty(b(k))
break;
end
end
end
i =j+1;
k =k+1;
else
i = i+1;
end
end
댓글 수: 3
답변 (0개)
참고 항목
카테고리
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!