이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
arrayfun
배열의 각 요소에 각각 함수 적용
구문
설명
는 한 번에 하나씩, B
= arrayfun(func
,A
)A
의 요소에 함수 func
를 적용합니다. 그러면 arrayfun
함수가 func
함수의 출력값을 출력 배열 B
로 결합하므로, A
의 i
번째 요소의 경우 B(i) = func(A(i))
가 됩니다. 입력 인수 func
는 하나의 입력 인수를 받고 스칼라를 반환하는 함수에 대한 함수 핸들입니다. func
의 출력값은 해당 데이터형의 객체를 결합할 수 있는 한, 어떤 데이터형이든 될 수 있습니다. (한 가지 예외는 제한 사항 항목을 참조하십시오.) 배열 A
와 B
의 크기는 같습니다.
사용자는 arrayfun
이 B
의 요소를 계산하는 순서를 지정할 수 없으며, 또한 특정 순서로 계산을 수행하기를 기대할 수도 없습니다.
는 하나 이상의 B
= arrayfun(___,Name,Value
)Name,Value
쌍 인수를 추가 옵션으로 지정하여 func
를 적용할 때 사용합니다. 예를 들어, 출력값을 셀형 배열로 반환하려면 'UniformOutput',false
를 지정하십시오. func
가 배열로 결합할 수 없는 값을 반환할 때 B
를 셀형 배열로 반환할 수 있습니다. 위에 열거된 구문 중 하나의 입력 인수와 함께 Name,Value
쌍 인수를 사용할 수 있습니다.
[B1,...,Bm] = arrayfun(___)
은 func
가 m
개 출력값을 반환할 경우 여러 개의 출력 배열 B1,...,Bm
을 반환합니다. func
는 데이터형이 서로 다른 출력 인수를 반환할 수 있지만, func
를 호출할 때마다 각 출력값의 데이터형은 매번 동일해야 합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.
func
에서 생성된 출력 인수 개수가 A1,...,An
으로 지정된 입력 인수 개수와 같을 필요는 없습니다.
예제
입력 인수
출력 인수
제한 사항
이종 배열
arrayfun
은UniformOutput
이true
로 설정되었을 때 이종 배열을 지원하지 않습니다.복소수로 구성된 입력 배열의 동작 차이
입력 배열
A
가 복소수로 구성된 배열이고 일부 요소의 허수부가 0과 같다면arrayfun
을 호출하여 배열의 요소를 참조할 경우 서로 다른 결과가 나올 수 있습니다.arrayfun
함수는 항상 이러한 수를 허수부가 0인 복소수로 취급합니다. 그러나 요소를 참조하면 이러한 값이 실수로 반환됩니다.이와 같은 동작 차이를 살펴보기 위해 먼저 복소수로 구성된 배열을 만듭니다.
A = zeros(2,1); A(1) = 1; A(2) = 0 + 1i
A = 1.0000 + 0.0000i 0.0000 + 1.0000i
그런 다음 셀형 배열을 만들고 여기에
A
의 요소를 할당합니다.A(1)
의 요소를 참조하면 허수부가 0과 같기 때문에 값이 실수로 반환됩니다. 셀형 배열은 서로 다른 형식을 갖는 데이터를 저장할 수 있으므로 실수 값과 복소수 값을C1
의 서로 다른 셀에 저장할 수 있습니다.C1 = cell(2,1); C1{1} = A(1); C1{2} = A(2)
C1 = 2×1 cell array {[ 1]} {[0.0000 + 1.0000i]}
arrayfun
을 호출하고A
의 요소에 액세스합니다. 값을 셀형 배열에 할당합니다.arrayfun
은A(1)
에 액세스할 때 해당 값을 복소수로 취급하여C2{1}
에 할당합니다.C2 = arrayfun(@(x) x, A, 'UniformOutput', false)
C2 = 2×1 cell array {[1.0000 + 0.0000i]} {[0.0000 + 1.0000i]}
확장 기능
버전 내역
R2006a 이전에 개발됨