루프를 사용하여 배열이나 집합의 개별 원소 처리하기
- 업데이트 날짜:2025-08-27
- 3분 (읽기 시간)
배열 또는 집합의 개별 원소를 루프 안팎으로 전달하도록 루프를 설정할 수 있습니다.
배열 또는 집합의 개별 원소를 처리하도록 입력 터널 설정하기
배열 또는 집합을 For 루프나 While 루프에 연결하는 경우, 오토인덱싱을 활성화하면 배열 또는 집합의 모든 원소를 읽고 처리할 수 있습니다. 업스트림 노드의 배열 또는 집합을 루프 경계의 오토인덱싱 입력 터널로 연결하고 입력 터널의 오토인덱싱을 활성화하면, 해당 배열 또는 집합의 원소는 첫 번째 원소로 시작하여 한 번에 하나씩 루프에 들어갑니다.
다음 단계에 따라 루프를 통해 배열에 원소를 전달합니다:
- 루프 경계에 있는 터널에서 마우스 오른쪽 버튼을 클릭합니다.
- 배월 원소를 처리하려는 방법에 해당하는 옵션을 선택합니다:
- 바로 가기 메뉴에서 인덱싱 비활성화를 선택하여 오토인덱싱을 비활성화하면, 배열 또는 집합 전체가 루프로 전달되고 같은 개수의 원소로 구성된 배열이 반환됩니다.
- 바로 가기 메뉴에서 인덱싱 활성화를 선택하여 오토인덱싱을 활성화하면, 배열 또는 집합의 개별 원소가 각각 루프로 전달되고, 단일 원소가 반환됩니다.
노트 루프가 실행되지 않을 때 기본 데이터 출력값을 얻지 않으려면, For 루프에 출력 터널이 생길 때마다 오토인덱싱을 활성화하십시오.
루프 출력 터널에 괄호 모양이 있으면 오토인덱싱이 활성화된 것입니다.
배열의 대체값을 반환하도록 출력 터널 설정하기
다음 단계에 따라 루프의 출력 터널을 설정하여, 배열의 인덱스 값, 배열의 마지막 값 또는 연결된 배열을 반환하도록 합니다.
- 출력 터널에서 마우스 오른쪽 버튼을 클릭합니다.
- 바로 가기 메뉴에서 각각 터널 모드≫마지막 값, 인덱싱 또는 연결하기를 선택합니다.
터널이 반환할 수 있는 각 출력 옵션에 대한 더 자세한 정보는 다음 테이블을 참조하십시오.
| 출력 이름 | 설명 |
|---|---|
| 인덱스하기 | 출력 배열은 루프가 반복될 때마다 새 원소를 수신합니다. 그러므로, 오토인덱싱된 출력 배열의 크기는 항상 반복 횟수와 같은 크기입니다. 예를 들어, 루프가 10회 실행되면 출력 배열은 10개의 원소를 가집니다. |
| 마지막 값 | 출력 터널은 루프의 마지막 반복의 원소만을 반환합니다. |
| 연결하기 | LabVIEW는 모든 입력을 순서대로 추가하여, 연결된 배열과 같은 차원의 출력 배열을 생성합니다. 연결하기 터널 모드는 [배열 만들기] 함수와 같이 배열을 연결합니다. |
출력 터널과 다음 노드 사이에서 와이어의 굵기는 루프가 값을 인덱싱하는지, 마지막 값을 반환하는지, 또는 값을 연결하는지 여부를 나타냅니다. 인덱싱 모드의 와이어는 같은 차원의 배열 대신 더 높은 차원의 배열을 포함하고 있기 때문에 연결하기 모드보다 더 굵습니다. 출력 터널이 마지막 값을 반환하는 경우, 와이어의 굵기는 인덱싱 또는 연결 시보다 더 가늘어집니다.
노트 루프는 1차원 배열에서 스칼라를 인덱싱하고, 2차원 배열에서 1차원 배열을 인덱싱합니다. 출력 터널에 대해서는 반대로 적용됩니다. 스칼라 원소는 1차원 배열로 순차적으로 쌓이고, 1차원 배열은 2차원 배열로 쌓입니다.
오토인덱싱을 비활성화하여 배열을 만드는 예제는 labview\examples\Arrays\Arrays.lvproj를 참조하십시오.
루프에 연결된 배열 또는 집합의 오토인덱싱 타입 선택하기
| 루프 타입 | 배열 또는 집합 설정 | 오토인덱싱 동작 | 예제 |
|---|---|---|---|
| For 루프 | 입력 터널에 한 개의 배열 또는 집합을 연결하고 카운트 터미널은 연결하지 않음 | For 루프의 입력 터널에 연결된 배열 또는 집합에서 오토인덱싱을 활성화하면, LabVIEW가 배열 또는 집합 크기를 실행 횟수로 사용하기 때문에 카운트 터미널을 연결할 필요가 없습니다. 기본적으로 LabVIEW는 For 루프에 연결되는 모든 배열 또는 집합에 대해 오토인덱싱을 활성화합니다. 노트 배열 또는 집합을 한 번에 하나의 원소씩 프로세스할 필요가 없다면 오토인덱싱을 비활성화해도 좋습니다. |
— |
| For 루프 | 연결된 카운트 터미널 | 카운트 터미널이 연결된 상태에서 오토인덱싱을 활성화하면, LabVIEW가 실행되는 실제 반복 횟수는 배열 또는 집합의 크기나 카운트 터미널의 값 중에서 더 작은 쪽이 됩니다. | 예를 들어, For 루프에 10개의 원소가 있는 배열 또는 집합을 연결하고 카운트 터미널에 15의 값을 연결하면, 루프는 10번만 실행됩니다. |
| For 루프 | 여러 배열 또는 집합 | 두 개 이상의 터널에 대해 오토인덱싱을 활성화하면, LabVIEW가 실행되는 반복 횟수는 배열 또는 집합의 크기 중에서 더 작은 쪽이 됩니다. | 예를 들어, 각각 10개와 20개의 원소를 가진 2개의 오토인덱싱된 배열을 루프에 입력하고, 카운트 터미널에 값 15를 연결하면, 루프는 10번만 실행되고, 첫 번째 배열의 모든 원소와 두 번째 배열의 처음 10개 원소까지만 인덱싱됩니다 다른 예제에서, 2개의 소스에서 나온 데이터 중에서 처음 100개 원소를 그래프에 플롯하고자 한다면, 카운트 터미널에 100을 연결하십시오. 그러나 더 작은 데이터 소스에 50개의 원소 밖에 없다면 루프는 50회 실행되고 각 데이터 소스의 처음 50개 원소까지만 인덱싱합니다. [배열 크기] 함수를 사용하여 배열의 크기를 확인하십시오. |
| While 루프 | 연결된 한 개의 배열 또는 집합 | While 루프로 들어가는 배열 또는 집합에 대해 오토인덱싱을 활성화하면, While 루프는 For 루프와 같은 방법으로 배열 또는 집합을 인덱싱합니다. 하지만 While 루프의 반복 횟수는 배열 또는 집합의 크기로 제한되지 않습니다. 특정 조건이 발생할 때까지 While 루프가 반복해서 실행되기 때문입니다. 루프의 반복 횟수가 배열 또는 집합의 크기보다 크면, While 루프는 배열 또는 집합의 원소를 모두 처리한 후, 다음 반복에서 배열 또는 집합 원소 타입의 기본값을 사용합니다. [배열 크기] 또는 [집합 크기] 함수를 사용하여 기본값이 While 루프에 전달되지 않도록 할 수 있습니다. 이 함수는 배열 또는 집합의 원소 개수를 나타냅니다. 반복 횟수가 배열 또는 집합의 크기와 같으면 While 루프의 실행을 멈추도록 설정합니다. While 루프에서 오토인덱싱은 기본적으로 비활성화되어 있습니다. 팁 출력 배열 또는 집합의 크기를 미리 결정할 수 없기 때문에 For 루프 출력의 오토인덱싱을 활성화하는 것이 While 루프의 경우보다 더 효율적입니다. 반복을 너무 많이 하면 시스템 메모리가 부족할 수 있습니다. |
— |