2013-05-05 3 views
0

for 루프의 코드를 이해하지 못합니다. matlab의 루프는 일반적으로 다음과 같이 보입니다 : for ii=1:2:100 그래서 1에서 100까지 그리고 반복 할 때마다 추가됩니다. 2. 그러나 여기에서 나는 루프에서이 조건을 가지고 그리고 그것이 무엇을하지 않습니다 : (매트릭스와 루프를위한 복잡한 matlab

for ii=[1:w:rd(1)-w-border, rd(1)-w-border+1], 
    ... 
end; 

wborder 인수로 전달 된 정수와 rd 이미지/행렬의 크기 rd = size(image);을)

누군가가 나를 어떻게 설명 할 수 있습니까? 루프는 이런 종류의 조건으로 matlab에서 작동합니까? 미리 감사드립니다.

+2

내게는 표준'MATLAB' 루프처럼 보입니다 : 대괄호'[]'안에서 어떤 일이 일어나는지 이해하는 것이 좋습니다. 나머지는 @Shai가 귀중한 힌트를주었습니다. – fpe

답변

2

For 루프 인덱스 값들의 정의 된 세트에 대해 문을 실행할 수 예를 들어, 다음 코드 세트 [1,5,8,17] 모든 요소를 ​​표시합니다

for s = [1,5,8,17] 
disp(s) 
end 

에 코드 for ii=[1:w:rd(1)-w-border, rd(1)-w-border+1] 유사하다. 추가 요소가 rd(1)-w-border+11:w:rd(1)-w-border 세트와 같습니다.

이 글을 쓰고 있듯이 [1,2,3,4,5,8][1:1:5, 8] 으로 지금은 분명히 희망합니다.

2

for 인수는 벡터입니다. 루프 반복자 ii은 루프의 각 반복에 대해 벡터에 대해 하나의 값을 취합니다. 언급했듯이, 벡터는 같은 간격으로 배열 될 수 있습니다 (예 : 1:2:100). 그러나 이는 또한 임의적 일 수 있습니다 (예 : for ii = [4,6,1,8] ...).
for 인수 벡터의 일부는 부분적으로 "균등하게 간격을 둔"벡터 인 1:w:rd(1)-w-border과 다른 요소 rd(1)-border+1입니다. 매트랩