이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
bsxfun
묵시적 확장(Implicit Expansion)이 가능한 두 배열에 요소별 연산 적용
설명
예제
행렬 요소와 열 평균값 간의 편차
열 평균값을 행렬 A
의 대응하는 열 요소에서 뺍니다. 그런 다음 표준편차로 정규화합니다.
A = [1 2 10; 3 4 20; 9 6 15]; C = bsxfun(@minus, A, mean(A)); D = bsxfun(@rdivide, C, std(A))
D = 3×3
-0.8006 -1.0000 -1.0000
-0.3203 0 1.0000
1.1209 1.0000 0
MATLAB® R2016b 이상에서는 연산자가 서로 호환되는 크기를 갖는 배열의 묵시적 확장을 독립적으로 지원하므로 bsxfun
대신 연산자를 직접 사용할 수 있습니다.
(A - mean(A))./std(A)
ans = 3×3
-0.8006 -1.0000 -1.0000
-0.3203 0 1.0000
1.1209 1.0000 0
벡터 요소 비교하기
열 벡터의 요소와 행 벡터의 요소를 비교합니다. 그 결과로 두 벡터 요소들의 각 조합에 대한 비교 값이 포함된 행렬이 반환됩니다. A > B
를 사용하면 이 연산을 실행한 것과 동일한 결과를 얻을 수 있습니다.
A = [8; 17; 20; 24]
A = 4×1
8
17
20
24
B = [0 10 21]
B = 1×3
0 10 21
C = bsxfun(@gt,A,B)
C = 4x3 logical array
1 0 0
1 1 0
1 1 0
1 1 1
사용자 지정 함수를 사용한 확장
함수 를 나타내는 함수 핸들을 만듭니다.
fun = @(a,b) a - exp(b);
bsxfun
을 사용하여 이 함수를 벡터 a
와 벡터 b
에 적용합니다. bsxfun
함수는 벡터를 동일한 크기의 행렬로 확장하며, 이는 입력값의 여러 조합에 대해 fun
을 실행할 수 있는 효율적인 방법입니다.
a = 1:7; b = pi*[0 1/4 1/3 1/2 2/3 3/4 1].'; C = bsxfun(fun,a,b)
C = 7×7
0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
-1.1933 -0.1933 0.8067 1.8067 2.8067 3.8067 4.8067
-1.8497 -0.8497 0.1503 1.1503 2.1503 3.1503 4.1503
-3.8105 -2.8105 -1.8105 -0.8105 0.1895 1.1895 2.1895
-7.1205 -6.1205 -5.1205 -4.1205 -3.1205 -2.1205 -1.1205
-9.5507 -8.5507 -7.5507 -6.5507 -5.5507 -4.5507 -3.5507
-22.1407 -21.1407 -20.1407 -19.1407 -18.1407 -17.1407 -16.1407
입력 인수
fun
— 적용할 이항 함수
함수 핸들
적용할 이항 함수로, 함수 핸들로 지정됩니다. fun
은 호환되는 크기의 배열 A
와 배열 B
를 받는 C = fun(A,B)
형식의 이항(2-입력값) 요소별 함수여야 합니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오. fun
은 스칼라 확장을 지원해야 합니다. 그래야만 A
또는 B
가 스칼라인 경우 다른 입력 배열의 요소 각각에 해당 스칼라를 적용시키고 C
를 결과로 반환할 수 있습니다.
MATLAB® R2016b 이상에서, 다음 표에 나열된 내장 이항 함수는 묵시적 확장을 독립적으로 지원합니다. 이러한 함수를 사용하면 bsxfun
을 사용하지 않고도 함수나 연산자를 직접 호출할 수 있습니다. 예를 들어, C = bsxfun(@plus,A,B)
대신 A+B
를 사용할 수 있습니다.
함수 | 기호 | 설명 |
---|---|---|
plus |
| 플러스 |
minus |
| 마이너스 |
times |
| 배열 곱하기 |
rdivide |
| 우측 배열 나누기 |
ldivide |
| 좌측 배열 나누기 |
power |
| 배열 거듭제곱 |
eq |
| 같음 |
ne |
| 같지 않음 |
gt |
| 보다 큼 |
ge |
| 보다 크거나 같음 |
lt |
| 보다 작음 |
le |
| 보다 작거나 같음 |
and |
| 요소별 논리 AND |
or |
| 요소별 논리 OR |
xor | N/A | 논리 배타적 OR |
bitand | N/A | 비트별 AND(Bit-wise AND) |
bitor | N/A | 비트별 OR(Bit-wise OR) |
bitxor | N/A | 비트별 XOR |
max | N/A | 이진 최댓값 |
min | N/A | 이진 최솟값 |
mod | N/A | 나눗셈의 나머지(Modulus) |
rem | N/A | 나눗셈의 나머지 |
atan2 | N/A | 4사분면 역탄젠트(결과값 단위: 라디안) |
atan2d | N/A | 4사분면 역탄젠트(결과값 단위: 도) |
hypot | N/A | 제곱합의 제곱근 |
예: C = bsxfun(@plus,[1 2],[2; 3])
데이터형: function_handle
A,B
— 입력 배열
스칼라 | 벡터 | 행렬 | 다차원 배열
입력 배열로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. 입력 인수 A
와 B
는 서로 호환되는 크기를 가져야 합니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오. 실제 계산에서 bsxfun
은 A
또는 B
의 차원이 한원소(1인 경우)이면 다른 배열의 차원에 맞추어 배열을 복제합니다. 실제 계산에서 bsxfun
은 A
또는 B
의 차원이 한원소이고 다른 배열의 대응하는 차원이 0이면 한원소 차원을 0으로 축소합니다.
데이터형: single
| double
| uint8
| uint16
| uint32
| uint64
| int8
| int16
| int32
| int64
| char
| logical
복소수 지원 여부: 예
팁
많은 경우에
bsxfun
을 묵시적 확장을 지원하는 함수와 연산자에 대한 직접 호출로 바꾸는 것이 좋습니다. 묵시적 확장은bsxfun
을 사용할 때에 비해 실행 속도가 빠르고 메모리 사용률이 효율적이며 코드의 가독성을 개선합니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
bsxfun
(Parallel Computing Toolbox)을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2007a에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)