public static MFullArray <double> size(MValue value) { Contract.Requires(value != null); var shape = value.Shape; var result = new MFullArray <double>(MArrayShape.RowVector(shape.DimensionCount)); for (int i = 0; i < shape.DimensionCount; ++i) { result[i] = shape.GetDimensionSize(i); } return(result); }
internal static MFullArray <TScalar> horzcat <[AnyPrimitive] TScalar>(params MFullArray <TScalar>[] arrays) { Contract.Requires(arrays != null); if (arrays.Length == 0) { return(MFullArray <TScalar> .CreateEmpty()); } var rowCount = arrays[0].RowCount; int columnCount = 0; foreach (var array in arrays) { if (array.IsHigherDimensional) { throw new NotImplementedException("horzcat on higher-dimensional arrays."); } if (array.RowCount != rowCount) { throw new MArrayShapeException(); } columnCount += array.ColumnCount; } var resultShape = new MArrayShape(rowCount, columnCount); var result = new MFullArray <TScalar>(resultShape); int resultIndex = 0; foreach (var array in arrays) { for (int arrayColumnIndex = 0; arrayColumnIndex < array.ColumnCount; ++arrayColumnIndex) { for (int rowIndex = 0; rowIndex < rowCount; ++rowIndex) { result[resultIndex] = array[arrayColumnIndex * rowCount + rowIndex]; resultIndex++; } } } return(result); }
public static MFullArray <double> zeros(double sz1, double sz2, double sz3) { var shape = MArrayShape.FromDoubles(sz1, sz2, sz3); return(new MFullArray <double>(shape)); }