Devo calcolare la deviazione standard di un elenco generico. Cercherò di includere il mio codice. È un elenco generico con i dati in esso contenuti. I dati sono per lo più float e int. Ecco il mio codice che è relativo ad esso, senza entrare in al maggior numero di dettagli:Deviazione standard dell'elenco generico?
namespace ValveTesterInterface
{
public class ValveDataResults
{
private List<ValveData> m_ValveResults;
public ValveDataResults()
{
if (m_ValveResults == null)
{
m_ValveResults = new List<ValveData>();
}
}
public void AddValveData(ValveData valve)
{
m_ValveResults.Add(valve);
}
Ecco la funzione in cui la deviazione standard deve essere calcolato:
public float LatchStdev()
{
float sumOfSqrs = 0;
float meanValue = 0;
foreach (ValveData value in m_ValveResults)
{
meanValue += value.LatchTime;
}
meanValue = (meanValue/m_ValveResults.Count) * 0.02f;
for (int i = 0; i <= m_ValveResults.Count; i++)
{
sumOfSqrs += Math.Pow((m_ValveResults - meanValue), 2);
}
return Math.Sqrt(sumOfSqrs /(m_ValveResults.Count - 1));
}
}
}
Ignora che cosa è all'interno della LatchStdev() funzione perché sono sicuro che non è giusto. È solo il mio povero tentativo di calcolare il dev dev. So come farlo da una lista di doppi, ma non da una lista di liste di dati generici. Se qualcuno ha esperienza in questo, per favore aiutatemi.
il mio C# non ha un MEDIA. Non si presenta. Questo è uno dei miei problemi. Inoltre non posso passare una lista generica attraverso la mia funzione come parametro. La media deve essere implementata all'interno di stdevmethod come il mio codice sopra. La mia deviazione standard è al di là di questo. –
Anche ragazzi. C# non ha la media (Math.average). Quindi calcolo il significato come il mio codice sopra. È la deviazione standard con cui ho più problemi. Grazie –
@Tom Hangler, assicurati di aver aggiunto 'utilizzando System.Linq;' nella parte superiore del file per includere la libreria delle funzioni LINQ. Questi includono sia 'Media()' che 'Seleziona()' – LBushkin