다음: 단정도 자료형, 이전: 행렬, 상위 문서: 수치 자료형   [차례][찾아보기]


4.2 범위

범위는 등차수열 형태인 행 벡터를 만드는 간단한 방법입니다. 범위 표현식은 범위의 첫 번째 원소 값, 필요할 때만 사용하는 공차, 범위 내 수열이 초과하지 못하는 최댓값으로 정의합니다. 시작, 증가도, 제한은 쌍반점(‘:’ 문자)으로 구분하고, 각종 수치 표현식과 함수 호출을 포함하기도 합니다. 증가도를 지정하지 않으면, 1로 단정합니다. 아래 예시는

1 : 5

값 묶음 [ 1, 2, 3, 4, 5 ]을 정의하고, 아래 예시는

1 : 3 : 5

값 묶음 [ 1, 4 ]을 정의합니다.

범위 상수가 행 벡터를 지정하기는 하지만, 일반적으로 필요하지 않으면 범위 상수를 벡터로 변환하지 않습니다. 이로꺼 1 : 10000 같은 상수를 80,000바이트 저장 공간을 사용하지 않고도 32두값 기기에서 사용할 수 있습니다.

범위가 벡터로 표기되어서(예: 대괄호 안) 범위를 벡터로 변환해야 하는 경우인 일반적인 예시입니다. 예를 들자면,

x = 0 : 0.1 : 1;

가로범위인 변수로 정의하면, 막기억장치에서 24바이트를 차지하고,

y = [ 0 : 0.1 : 1];

세로행렬 인 변수로 정의하면, 막기억장치에서 88바이트를 차지합니다.

disable_range 함수를 사용하면 이 공간 절약 기능이 비활성화될 가능성이 있습니다.

= disable_range ()
옛_값 = disable_range (새_값)
disable_range (새_값, "local")

범위를 특별한 공간 절약 형식으로 저장할지를 결정하는 내부 변수를 조회 또는 설정합니다.

기본 값은 참입니다. 이 설정을 끄면, 범위가 온전한 행렬로 저장됩니다.

함수 안에서 "local" 선택지를 넣어 부르면, 함수와 함수가 부른 종속 절차의 변수가 지역적으로 바뀝니다. 함수가 종료되면 원래 변숫값이 되돌아옵니다.

같이 보기: disable_diagonal_matrix, disable_permutation_matrix.

범위의 상계(증가도가 음수이면, 하계)가 언제나 값 묶음에 포함되는 것은 아니고, 이 경우에는 옥타브가 범위 계산에 부동소수점을 사용하기 때문에 놀랄만한 결과를 도출하는 부동소수점 값으로 정의된다는 점에 유의하십시오. 범위의 끝점 정의가 중요하고, 원소 개수를 안다면, linspace  함수를 사용하여야 합니다.(특수 행렬 도구을 보십시오.)

범위에 스칼라를 덧붙이면, 스칼라에서 범위만큼 빼고(또는 범위에서 스칼라만큼 뺌), 스칼라를 곱하며, 범위의 압축을 가능하면 해제하지 않습니다. 예를 들어,

a = 2*(1:1e7) - 1;

1:2:2e7-1과 같은 결과를 내지만, 원소 천만 개를 생성하지는 않습니다.

1:0:1처럼 쌍반점에 싸인 증가도를 0으로 지정하면, 범위의 원소 개수를 셀 때에 0으로 나누게 되므로, 0은 사용이 불가능합니다. 그러나 증감하지 않는 범위(예: 모든 원소가 동일)은 특히 색인에서 유용하며, 내장 함수 ones로 만듭니다. 범위는 무조건 행 벡터이기 때문에 ones (1, 10)는 범위를 생성하지만, ones (10, 1)는 범위를 생성하지 않음을 유의하십시오.

범위 표현식을 분석할 때에 표현식의 원소가 모두 상수인지 확인합니다. 모두 상수이면,범위 표현식이 단일 범위 상수로 교체됩니다.


다음: 단정도 자료형, 이전: 행렬, 상위 문서: 수치 자료형   [차례][찾아보기]