var
구문
설명
는 크기가 1보다 큰 첫 번째 배열 차원에서 V
= var(A
)A
의 요소의 분산을 반환합니다. 기본적으로, 분산은 N-1
로 정규화됩니다. 여기서 N
은 관측값의 개수입니다.
A
가 관측값으로 구성된 벡터인 경우V
는 스칼라입니다.A
가 열이 확률 변수이고 행이 관측값인 행렬인 경우,V
는 각 열에 대응하는 분산이 포함된 행 벡터입니다.A
가 다차원 배열인 경우var(A)
는 크기가 1보다 큰 첫 번째 배열 차원을 따라 연산을 수행하며, 요소를 벡터로 취급합니다. 이 차원에서V
의 크기는1
이 되고 다른 모든 차원의 크기는A
와 동일합니다.A
가 스칼라인 경우V
는0
입니다.A
가0
×0
의 빈 배열이면V
는NaN
이 됩니다.A
가 테이블 또는 타임테이블인 경우var(A)
는 각 변수의 분산을 포함하는 한 행 크기의 테이블을 반환합니다. (R2023a 이후)
예제
행렬의 분산
행렬을 만들고 이에 대한 분산을 계산합니다.
A = [4 -7 3; 1 4 -2; 10 7 9]; var(A)
ans = 1×3
21.0000 54.3333 30.3333
배열의 분산
3차원 배열을 만들고 분산을 계산합니다.
A(:,:,1) = [1 3; 8 4]; A(:,:,2) = [3 -4; 1 2]; var(A)
ans = ans(:,:,1) = 24.5000 0.5000 ans(:,:,2) = 2 18
분산 가중 벡터 지정하기
행렬을 만든 다음, 가중 벡터 w
에 따라 분산을 계산합니다.
A = [5 -4 6; 2 3 9; -1 1 2]; w = [0.5 0.25 0.25]; var(A,w)
ans = 1×3
6.1875 9.5000 6.1875
분산에 대한 차원 지정하기
행렬을 만든 다음, 첫 번째 차원을 따라 분산을 계산합니다.
A = [4 -2 1; 9 5 7]; var(A,0,1)
ans = 1×3
12.5000 24.5000 18.0000
두 번째 차원을 따라 A
의 분산을 계산합니다.
var(A,0,2)
ans = 2×1
9
4
배열 페이지의 분산
3차원 배열을 만들고 데이터의 각 페이지(행과 열)에 대한 분산을 구합니다.
A(:,:,1) = [2 4; -2 1]; A(:,:,2) = [9 13; -5 7]; A(:,:,3) = [4 4; 8 -3]; V = var(A,0,[1 2])
V = V(:,:,1) = 6.2500 V(:,:,2) = 60 V(:,:,3) = 20.9167
누락값을 제외한 분산
NaN
값이 포함된 행렬을 만듭니다.
A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
A = 2×4
1.7700 -0.0050 NaN -2.9500
NaN 0.3400 NaN 0.1900
NaN
값을 제외하고 행렬의 분산을 구합니다. NaN
값이 포함된 행렬 열의 경우 var
은 NaN
이 아닌 요소에 대해 계산을 수행합니다. 값이 모두 NaN
인 행렬 열의 경우 분산은 NaN
이 됩니다.
V = var(A,"omitnan")
V = 1×4
0 0.0595 NaN 4.9298
분산 및 평균
행렬을 만든 다음 각 열의 분산과 평균을 계산합니다.
A = [4 -7 3; 1 4 -2; 10 7 9]; [V,M] = var(A)
V = 1×3
21.0000 54.3333 30.3333
M = 1×3
5.0000 1.3333 3.3333
행렬을 만든 다음 각 열의 가중 분산 및 가중 평균을 가중 벡터 w
에 따라 계산합니다.
A = [5 -4 6; 2 3 9; -1 1 2]; w = [0.5 0.25 0.25]; [V,M] = var(A,w)
V = 1×3
6.1875 9.5000 6.1875
M = 1×3
2.7500 -1.0000 5.7500
입력 인수
A
— 입력 배열
벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
입력 배열로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다. A
가 스칼라이면 var(A)
는 0
을 반환합니다. A
가 0
×0
의 빈 배열인 경우 var(A)
는 NaN
을 반환합니다.
데이터형: single
| double
| table
| timetable
복소수 지원 여부: 예
w
— 가중치
0
(디폴트 값) | 1
| 벡터
가중치로, 다음 중 하나로 지정됩니다.
0
—N-1
로 정규화합니다. 여기서N
은 관측값의 개수입니다. 관측값이 하나만 있는 경우 가중치는 1입니다.1
—N
으로 정규화합니다.음이 아닌 스칼라로 구성된 벡터는 분산이 계산되는
A
의 대응하는 차원에 따라 가중됩니다.
데이터형: single
| double
dim
— 연산을 수행할 차원
양의 정수 스칼라
연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 차원을 지정하지 않을 경우 디폴트 값은 크기가 1보다 큰 첫 번째 배열 차원이 됩니다.
차원 dim
은 길이가 1
로 줄어드는 차원을 나타냅니다. size(V,dim)
은 1
이 되고, 다른 모든 차원의 크기는 변경되지 않습니다.
m
×n
입력 행렬 A
가 있다고 가정합니다.
var(A,0,1)
은A
의 각 열에서 요소들의 분산을 구하고,1
×n
행 벡터를 반환합니다.var(A,0,2)
는A
의 각 행에서 요소들의 분산을 구하고,m
×1
열 벡터를 반환합니다.
dim
이 ndims(A)
보다 큰 경우 var(A)
는 A
와 크기가 같은, 0으로 구성된 배열을 반환합니다.
vecdim
— 차원의 벡터
양의 정수로 구성된 벡터
차원의 벡터로, 양의 정수로 구성된 벡터로 지정됩니다. 각 요소는 입력 배열의 차원을 나타냅니다. 지정된 연산 차원의 출력값의 길이는 1이고, 다른 모든 차원의 길이는 변경되지 않습니다.
2×3×3 입력 배열 A
가 있다고 가정하겠습니다. 이때 var(A,0,[1 2])
는 A
의 각 페이지에 대해 구한 분산을 요소로 갖는 1×1×3 배열을 반환합니다.
nanflag
— 누락값 조건
"includemissing"
(디폴트 값) | "includenan"
| "omitmissing"
| "omitnan"
누락값 조건으로, 다음 값 중 하나로 지정됩니다.
"includemissing"
또는"includenan"
— 분산을 구할 때A
의NaN
값을 포함합니다. 연산 차원의 요소가 하나라도NaN
인 경우 이에 대응하는V
의 요소도NaN
입니다."includemissing"
과"includenan"
은 동일하게 동작합니다."omitmissing"
또는"omitnan"
—A
와w
의NaN
값을 무시하고, 더 적은 수의 점을 대상으로 분산을 구합니다. 연산 차원의 모든 요소가NaN
인 경우 이에 대응하는V
의 요소는NaN
이 됩니다."omitmissing"
과"omitnan"
은 동일하게 동작합니다.
출력 인수
V
— 분산
스칼라 | 벡터 | 행렬 | 다차원 배열 | 테이블
분산으로, 스칼라, 벡터, 행렬, 다차원 배열 또는 테이블로 반환됩니다.
A
가 관측값으로 구성된 벡터인 경우V
는 스칼라입니다.A
가 열이 확률 변수이고 행이 관측값인 행렬인 경우,V
는 각 열에 대응하는 분산이 포함된 행 벡터입니다.A
가 다차원 배열인 경우var(A)
는 크기가 1보다 큰 첫 번째 배열 차원을 따라 연산을 수행하며, 요소를 벡터로 취급합니다. 이 차원에서V
의 크기는1
이 되고 다른 모든 차원의 크기는A
와 동일합니다.A
가 스칼라인 경우V
는0
입니다.A
가0
×0
의 빈 배열이면V
는NaN
이 됩니다.A
가 테이블 또는 타임테이블이면V
는 행이 한 개 있는 테이블입니다.A
의 변수가 단위를 갖는 경우,V
의 변수는 이러한 단위를 갖지 않습니다. (R2023a 이후)
M
— 평균값
스칼라 | 벡터 | 행렬 | 다차원 배열 | 테이블
평균값으로, 스칼라, 벡터, 행렬, 다차원 배열 또는 테이블로 반환됩니다.
A
가 관측값으로 구성된 벡터인 경우M
은 스칼라입니다.A
가 열이 확률 변수이고 행이 관측값인 행렬인 경우,M
은 각 열에 대응하는 평균이 포함된 행 벡터입니다.A
가 다차원 배열인 경우var(A)
는 크기가 1보다 큰 첫 번째 배열 차원을 따라 연산을 수행하며, 요소를 벡터로 취급합니다. 이 차원에서M
의 크기는1
이 되고 다른 모든 차원의 크기는A
와 동일합니다.A
가 스칼라인 경우M
은A
와 동일합니다.A
가0
×0
의 빈 배열이면M
은NaN
이 됩니다.A
가 테이블 또는 타임테이블이면M
은 행이 한 개 있는 테이블입니다.A
의 변수가 단위를 갖는 경우,M
의 변수도 동일한 단위를 갖습니다. (R2023a 이후)
V
가 가중 분산이면 M
은 가중 평균입니다.
세부 정보
분산
N개의 스칼라 관측값으로 구성된 확률 변수 벡터 A의 경우 분산은 다음과 같이 정의됩니다.
여기서 μ는 A의 평균입니다.
분산의 일부 정의에서는 정규화 인자 N – 1 대신 N을 사용합니다. 가중치 1
을 지정하여 정규화 인자 N을 사용할 수 있습니다. 그러면 평균을 기준으로 한 표본의 2차 모멘트가 산출됩니다.
분산에 대한 정규화 인자에 관계없이 평균은 정규화 인자 N을 가진다고 간주됩니다.
가중 분산
가중 평균
N개 스칼라 관측값 및 가중치 부여 방식 w
로 구성된 유한 길이 벡터 A의 경우, 가중 평균은 다음과 같이 정의됩니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 지원하지만 다음과 같은 제한 사항이 있습니다.
가중치 부여 방식은 벡터가 될 수 없습니다.
자세한 내용은 메모리에 담을 수 없는 큰 데이터를 위한 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
C++ 코드 생성은 다음 구문을 지원합니다.
V = var(A)
V = var(A,w)
V = var(A,w,"all")
V = var(A,w,dim)
V = var(A,w,vecdim)
V = var(__,nanflag)
차원을 지정하는 경우 그 값은 상수여야 합니다.
Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder) 항목을 참조하십시오.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
dim
을 지정할 경우 그 값은 상수여야 합니다.GPU 코드 생성은 다음 구문을 지원합니다.
V = var(A)
V = var(A,w)
V = var(A,w,"all")
V = var(A,w,dim)
V = var(A,w,vecdim)
V = var(__,nanflag)
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
이 함수는 GPU 배열을 완전히 지원합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨R2023a: 테이블 및 타임테이블에 대해 직접 계산 수행
var
함수는 테이블이나 타임테이블 내의 변수에 액세스하기 위한 인덱싱 없이 이러한 모든 변수에 대해 계산을 수행할 수 있습니다. 모든 변수는 계산을 지원하는 데이터형을 가져야 합니다. 자세한 내용은 Direct Calculations on Tables and Timetables 항목을 참조하십시오.
R2023a: 누락값 조건 지정
분산을 구할 때 "includemissing"
또는 "omitmissing"
옵션을 사용하여 입력 배열의 누락값을 포함하거나 생략합니다. 이러한 옵션은 각각 "includenan"
및 "omitnan"
옵션과 동일하게 동작합니다.
R2023a: 그룹 크기가 작은 경우의 성능이 향상됨
연산 차원이 지정되지 않은 경우 var
함수로 실수형 벡터에 대해 계산할 때의 성능이 향상되었습니다. 이 함수는 R2022b보다 R2023a에서 디폴트 연산 차원을 더 빠르게 결정합니다.
예를 들어, 다음 코드는 디폴트 벡터 차원을 따라 분산을 구합니다. 이 코드는 이전 릴리스보다 약 1.6배 빠릅니다.
function timingVar A = rand(10,1); for i = 1:8e5 var(A); end end
대략적인 실행 시간은 다음과 같습니다.
R2022b: 1.29초
R2023a: 0.79초
코드 실행 시간은 Windows® 10, Intel® Xeon® CPU E5-1650 v4 @ 3.60GHz 테스트 시스템에서 timeit
함수를 사용하여 측정했습니다.
timeit(@timingVar)
R2022a: 평균 또는 가중 평균 반환
var
함수는 이제 두 번째 출력값 인수 M
을 사용하여 분산 계산에 사용된 입력값 요소의 평균을 반환할 수 있습니다. 가중치 부여 방식이 지정되면 var
은 가중 평균을 반환합니다.
R2018b: 여러 차원에 대해 연산 수행
한 번에 입력 배열의 여러 차원에 대해 연산을 수행합니다. 연산 차원으로 구성된 벡터를 지정하거나, 모든 배열 차원에 대해 연산을 수행하도록 "all"
옵션을 지정하십시오.
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)