本文整理汇总了C#中IMatrixData.GetExpressionRow方法的典型用法代码示例。如果您正苦于以下问题:C# IMatrixData.GetExpressionRow方法的具体用法?C# IMatrixData.GetExpressionRow怎么用?C# IMatrixData.GetExpressionRow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMatrixData
的用法示例。
在下文中一共展示了IMatrixData.GetExpressionRow方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessData
public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables, ProcessInfo processInfo)
{
string[][] col = mdata.CategoryColumns[param.GetSingleChoiceParam("Indicator column").Value];
string term = param.GetStringParam("Value").Value;
List<int> inds = new List<int>();
for (int i = 0; i < col.Length; i++){
if (Contains(col[i], term)){
inds.Add(i);
}
}
float[][] profiles = new float[inds.Count][];
for (int i = 0; i < profiles.Length; i++){
profiles[i] = mdata.GetExpressionRow(inds[i]);
float mean = (float) ArrayUtils.Mean(profiles[i]);
for (int j = 0; j < profiles[i].Length; j++){
profiles[i][j] -= mean;
}
}
float[] totalProfile = new float[mdata.ExpressionColumnCount];
for (int i = 0; i < totalProfile.Length; i++){
List<float> vals = new List<float>();
foreach (float[] t in profiles){
float val = t[i];
if (float.IsNaN(val) || float.IsInfinity(val)){
continue;
}
vals.Add(val);
}
totalProfile[i] = vals.Count > 0 ? ArrayUtils.Median(vals) : float.NaN;
}
for (int i = 0; i < mdata.RowCount; i++){
for (int j = 0; j < mdata.ExpressionColumnCount; j++){
mdata[i, j] -= totalProfile[j];
}
}
}