is there a function that can calculate the standard deviation of an array or a vector?
ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided
is there a function that can calculate the standard deviation of an array or a vector?
ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided
Hi,
one (admittedly awkward) way to do it is to fill a histogram with the elements of the array and then ask the histogram its standard deviation. Binning might also make the result imprecise.
If you have ROOT v6.14, you can use ROOT::VecOps::RVec
instead. It should be as simple as:
using namespace ROOT::VecOps;
RVec<float> rv = yourstdvectorofnumbers;
auto srddev = StdDev(rv);
I don’t know of another function that evaluates the standard deviation of a std::vector
or an array directly in ROOT. Maybe @moneta knows
Cheers,
Enrico
Hello,
is the TMath::RMS function what you’re looking for? I know it’s called RMS but it looks like the standard deviation.
i used the code, with my own variables and i received the following error message:
*** Break *** segmentation violation
[/usr/lib/system/libsystem_platform.dylib] _sigtramp (no debug info)
[<unknown binary>] (no debug info)
Yes, you can use TMath::RMS or TMath::StdDev
std::vector<double> x(100);
gRandom->RndmArray(x.size(),x.data());
TMath::StdDev(x.begin(), x.end() );
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.