Main Content

fold

함수를 사용하여 벡터 결합(겹치기)

설명

예제

fold(fun,v)fun을 사용하여 v를 겹쳐 나갑니다. 즉 foldv의 처음 두 요소를 대상으로 fun을 호출한 다음, 마지막 요소가 결합될 때까지 중간 결과와 그 다음 요소를 대상으로 fun을 반복적으로 호출합니다. 프로그래밍 측면에서 볼 때 겹치기 연산은 fold(fun,v) = fun(fold(fun,v(1:end-1)),v(end))에 해당합니다.

예제

fold(fun,v,defaultVal)v가 비어 있는 경우 값 defaultVal을 반환합니다.

예제

함수를 사용한 벡터 겹치기

power 함수를 사용하여 기호 변수로 구성된 벡터를 겹쳐 나갑니다. 다음 출력값은 fold가 지정된 함수를 사용하여 벡터의 요소를 왼쪽에서 오른쪽으로 결합하는 방법을 보여줍니다.

syms a b c d e
fold(@power, [a b c d e])
ans =
(((a^b)^c)^d)^e

값 집합에 속한 변수 가정하기

fold를 사용하여 or을 조건 x == 1, ..., x == 10에 적용함으로써 변수 x가 값 집합 1, 2, ..., 10에 속한다는 가정을 만듭니다. assumptions를 사용하여 가정이 설정되었는지 확인합니다.

syms x
cond = fold(@or, x == 1:10);
assume(cond)
assumptions
ans =
x == 1 | x == 2 | x == 3 | x == 4 | x == 5 |...
 x == 6 | x == 7 | x == 8 | x == 9 | x == 10

겹치기 연산의 디폴트 값 지정하기

입력값이 비어 있는 경우 세 번째 인수를 지정하여 fold의 디폴트 값을 지정합니다. 세 번째 인수가 지정되지 않고 입력값이 비어 있으면 fold에서 오류가 발생합니다.

벡터를 합산하는 함수를 만들 때 벡터가 비어 있는 경우 함수가 0을 반환하도록 디폴트 값 0을 지정합니다.

sumVector = @(x) fold(@plus, x, 0);
sumVector([])
ans =
     0

입력 인수

모두 축소

벡터 겹치기에 사용되는 함수로, 함수 핸들로 지정됩니다.

예: @or

겹치려는 벡터로, 벡터, 기호 벡터 또는 셀형 벡터로 지정됩니다. v의 요소가 기호 함수이면 formula 호출에 의해 이 기호 함수의 식이 사용됩니다.

겹치기 연산의 디폴트 값으로, 숫자, 벡터, 행렬, 다차원 배열 또는 기호 숫자, 기호 변수, 기호 벡터, 기호 행렬, 기호 다차원 배열, 기호 함수, 기호 표현식으로 지정됩니다.

버전 내역

R2016b에 개발됨

참고 항목

|