How does function std process complex numbers
조회 수: 39 (최근 30일)
이전 댓글 표시
In function S = std(A), there are complex numbers in matrix A. How does std calculate on complex numbers?
Thanks
댓글 수: 0
채택된 답변
David Goodmanson
2019년 7월 12일
편집: David Goodmanson
2019년 7월 12일
Hi JFz,
First of all, for a matrix the std is calculated independently for each column, as is true of many Matlab functions. For each column, std subtracts off the mean value as a complex calculation, then takes the absolute values of deviations from the mean and does the standard std calculation on those. For a vector of length N,
stand_dev = sqrt(sum(abs(r-mean(r)).^2)/(N-1))
댓글 수: 2
Walter Roberson
2019년 7월 15일
Which is to say that it does not do anything special for complex numbers.
추가 답변 (1개)
John D'Errico
2019년 7월 15일
편집: John D'Errico
2019년 7월 15일
std uses the formula that is given by David, which is just the standard fornula, with no difference for complex inputs. But just to add a couple of useful formulas that apply for complex arguments:
var(V) = var(real(V)) + var(imag(V))
std(V) = sqrt(std(real(V))^2 + std(imag(V))^2 )
For example:
V = rand(1,5) + rand(1,5)*i;
var(V)
ans =
0.20393
var(real(V)) + var(imag(V))
ans =
0.20393
std(V)
ans =
0.45159
sqrt(std(real(V))^2 + std(imag(V))^2 )
ans =
0.45159
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!