private static void RandomizeConstantRegion(int[] o, int startInd, int endInd) { int len = endInd - startInd; Random2 r = new Random2(); int[] p = r.NextPermutation(len); int[] permuted = new int[len]; for (int i = 0; i < len; i++){ permuted[i] = o[startInd + p[i]]; } Array.Copy(permuted, 0, o, startInd, len); }
public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { int nrows = param.GetIntParam("Number of rows").Value; nrows = Math.Min(nrows, mdata.RowCount); Random2 rand = new Random2(); int[] rows = ArrayUtils.SubArray(rand.NextPermutation(mdata.RowCount), nrows); PerseusPluginUtils.FilterRows(mdata, param, rows); }