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 个评论
更多回答(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
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!