2017-05-11 4 views
1

나는 다음과 같은 질문을 가지고있다 : for 루프를 사용할 때 반복 횟수는 고정되어 있지만 각 루프마다 변경 될 수 있는가?for-loop의 반복 횟수를 변경하는 방법은 무엇입니까?

는 예를 들어 I는 (30x2)이 경우에 따라서

for i = 1: size (M, 1) 
    Bla bla bla 
    M = [M; BLA bla] 
    end 

행렬 M은 각 루프에서 크기를 변경 (또는 거의 조건에 따라서) 행렬 M을 실행하고 I이 변경되어 져야 할 반복 횟수의 계정 i. 이것은 하나 개의 옵션입니다

L=length(M); 
for i = 1:L 
Bla bla bla 
M = [M; BLA bla] 
L=L+1; or I tried too L=length(M); 
end 
+1

'for'가 아닌 'while'이 필요하므로 루프 조건이 동적으로 평가됩니다. 업데이트 된 행렬 –

+0

for i = 1 : L은 각 for each [1,2, ... L]'로 컴파일되므로 루프 내에서 동적이 아닙니다. 일반적으로 조건부 크기의 루프가 필요한 경우에는 while while을 사용해야합니다. –

답변

2

(그러나 그것은 작동하지 않습니다) :

나는이 시도

i = 1; 
while i ~= N 
    etc... 
    i = i+1; 
    N = size(M,2); %or whatever 
end 
0
당신은 루프의 반복을 증가 할 수는 없지만 문 경우 사용할 수 있습니다

inside for loop and break before :

for i = 1: size (M, 1) 
    Bla bla bla 
    M = [M; BLA bla] 
    if size(M,1)>10, break; end % use your condition to stop 
end 
+0

루프가 행렬 안에서 _grown_ 될 때 _earlier_가 어떻게 작동합니까? –

+0

아, 반복 횟수를 미리 설정하지 않으면 이전에 위반 한 내용이 적용되지 않습니다. 이 경우 루프는 더 좋아야합니다. –

관련 문제