Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public static MFullArray <double> zeros(double sz1, double sz2, double sz3)
        {
            var shape = MArrayShape.FromDoubles(sz1, sz2, sz3);

            return(new MFullArray <double>(shape));
        }