How does function std process complex numbers

25 次查看(过去 30 天)
In function S = std(A), there are complex numbers in matrix A. How does std calculate on complex numbers?
Thanks

采纳的回答

David Goodmanson
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))

更多回答(1 个)

John D'Errico
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

标签

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by