Exemplo n.º 1
0
        public MxArray GetField(int index, string field_name)
        {
            AssertClass(ClassID.Struct, "GetField");

            IntPtr arrayPtr = LibMx.mxGetField(m_array, index, field_name);

            return(new MxArray(arrayPtr, this));
        }
Exemplo n.º 2
0
        public void RemoveField(int field_number)
        {
            AssertClass(ClassID.Struct, "RemoveField");
            AssertFieldExists(field_number);
            LibMx.mxRemoveField(m_array, field_number);

            // We can't known from what field our childs where coming, remove them all
            ClearChilds();
        }
Exemplo n.º 3
0
        public MxArray GetField(int index, int field_number)
        {
            AssertClass(ClassID.Struct, "GetField");
            AssertFieldExists(field_number);

            IntPtr arrayPtr = LibMx.mxGetFieldByNumber(m_array, index, field_number);

            return(new MxArray(arrayPtr, this));
        }
Exemplo n.º 4
0
        public int AddField(string field_name)
        {
            AssertClass(ClassID.Struct, "AddField");
            int index = LibMx.mxAddField(m_array, field_name);

            if (index < 0)
            {
                //FIXME: Put a better Exception type and error message
                throw new Exception(String.Format("Unable to add the field {0}", field_name));
            }
            return(index);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Destroy the memory allocated for the array in Matlab.
        /// </summary>
        public void Destroy()
        {
            CheckPointer();
            ClearChilds();

            if (m_parent == null)
            {
                LibMx.mxDestroyArray(m_array);
            }
            else
            {
                m_parent.RemoveChild(this);
            }

            m_array = IntPtr.Zero;
        }
Exemplo n.º 6
0
        public void SetField(int index, int field_number, MxArray value)
        {
            AssertClass(ClassID.Struct, "SetField");
            AssertFieldExists(field_number);

            if (value.Parent != null)
            {
                // We make a copy so we are sure that we could use this array as we wish.
                // We don't do this otherwise for performance reasons.
                value = value.Clone();
            }

            IntPtr oldFieldValue = LibMx.mxGetFieldByNumber(m_array, index, field_number);

            RemoveChilds(oldFieldValue);
            LibMx.mxDestroyArray(oldFieldValue);

            LibMx.mxSetFieldByNumber(m_array, index, field_number, value.m_array);
            value.Parent = this;
        }
Exemplo n.º 7
0
 public string GetFieldName(int field_number)
 {
     AssertClass(ClassID.Struct, "GetFieldName");
     AssertFieldExists(field_number);
     return(LibMx.mxGetFieldNameByNumber(m_array, field_number));
 }
Exemplo n.º 8
0
 /// <summary>
 /// Get the index of the field named field_name, returns -1 if the field doesn't
 /// exists.
 /// </summary>
 int _GetFieldNumber(string field_name)
 {
     AssertClass(ClassID.Struct, "GetFieldNumber");
     return(LibMx.mxGetFieldNumber(m_array, field_name));
 }
Exemplo n.º 9
0
 public static MxArray CreateString(string str)
 {
     return(new MxArray(LibMx.mxCreateString(str)));
 }
Exemplo n.º 10
0
 public static MxArray CreateArray(int[] dims, ClassID classid, Complexity complexFlag)
 {
     return(new MxArray(LibMx.mxCreateNumericArray(dims.Length, dims, classid, complexFlag)));
 }
Exemplo n.º 11
0
 public MxArray Clone()
 {
     CheckPointer();
     return(new MxArray(LibMx.mxDuplicateArray(m_array)));
 }
Exemplo n.º 12
0
 public static bool IsInf(double value)
 {
     return(LibMx.mxIsInf(value));
 }
Exemplo n.º 13
0
 public static bool IsFinite(double value)
 {
     return(LibMx.mxIsFinite(value));
 }