# C1.Framework.Mathematics.Matrix

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Framework_Mathematics_Matrix" data-uid="C1.Framework.Mathematics.Matrix" class="text-break">Matrix Class
</h1>
  <div class="markdown level0 summary"><p>Define a class that represents the matrix in mathematics.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><span class="xref">Matrix</span></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.icloneable">ICloneable</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.Framework.Mathematics.html">C1.Framework.Mathematics</a></h6>
  <h6><strong>Assembly</strong>: C1.Win.C1Input.4.8.dll</h6>
  <h5 id="C1_Framework_Mathematics_Matrix_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class Matrix : ICloneable</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class Matrix
    Implements ICloneable</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix__ctor" data-uid="C1.Framework.Mathematics.Matrix.#ctor">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.-ctor.html#C1_Framework_Mathematics_Matrix__ctor">Matrix()</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix__ctor_System_Boolean_C1_Framework_Mathematics_Vector___" data-uid="C1.Framework.Mathematics.Matrix.#ctor(System.Boolean,C1.Framework.Mathematics.Vector[])">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.-ctor.html#C1_Framework_Mathematics_Matrix__ctor_System_Boolean_C1_Framework_Mathematics_Vector___">Matrix(bool, params Vector[])</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix__ctor_System_Double_0__0___" data-uid="C1.Framework.Mathematics.Matrix.#ctor(System.Double[0:,0:])">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.-ctor.html#C1_Framework_Mathematics_Matrix__ctor_System_Double_0__0___">Matrix(double[,])</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix__ctor_System_Int32_System_Int32_" data-uid="C1.Framework.Mathematics.Matrix.#ctor(System.Int32,System.Int32)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.-ctor.html#C1_Framework_Mathematics_Matrix__ctor_System_Int32_System_Int32_">Matrix(int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="fields">Fields
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix__data" data-uid="C1.Framework.Mathematics.Matrix._data">
          <a class="xref" href="C1.Framework.Mathematics.Matrix._data.html">_data</a>
        </td>
        <td class="markdown level1 summary"><p>A two dimension <b>double</b> array used to save the data.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Columns" data-uid="C1.Framework.Mathematics.Matrix.Columns">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Columns.html#C1_Framework_Mathematics_Matrix_Columns">Columns</a>
        </td>
        <td class="markdown level1 summary"><p>Get the vectors from the column direction.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Elements" data-uid="C1.Framework.Mathematics.Matrix.Elements">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Elements.html#C1_Framework_Mathematics_Matrix_Elements">Elements</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the elements of the matrix.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Height" data-uid="C1.Framework.Mathematics.Matrix.Height">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Height.html#C1_Framework_Mathematics_Matrix_Height">Height</a>
        </td>
        <td class="markdown level1 summary"><p>Get the row number of the matrix.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_IsIdentity" data-uid="C1.Framework.Mathematics.Matrix.IsIdentity">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.IsIdentity.html#C1_Framework_Mathematics_Matrix_IsIdentity">IsIdentity</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a value indicating whether this Matrix object is the identity matrix.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Item_System_Int32_System_Int32_" data-uid="C1.Framework.Mathematics.Matrix.Item(System.Int32,System.Int32)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Item.html#C1_Framework_Mathematics_Matrix_Item_System_Int32_System_Int32_">this[int, int]</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the value of element at special location.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Rows" data-uid="C1.Framework.Mathematics.Matrix.Rows">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Rows.html#C1_Framework_Mathematics_Matrix_Rows">Rows</a>
        </td>
        <td class="markdown level1 summary"><p>Get the vectors from the row direction..</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Value" data-uid="C1.Framework.Mathematics.Matrix.Value">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Value.html#C1_Framework_Mathematics_Matrix_Value">Value</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the value of the current matrix.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Width" data-uid="C1.Framework.Mathematics.Matrix.Width">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Width.html#C1_Framework_Mathematics_Matrix_Width">Width</a>
        </td>
        <td class="markdown level1 summary"><p>Get the column number of the matrix.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Add_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.Add(C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Add.html#C1_Framework_Mathematics_Matrix_Add_C1_Framework_Mathematics_Matrix_">Add(Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Adds a speical <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> to this <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Clone" data-uid="C1.Framework.Mathematics.Matrix.Clone">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Clone.html#C1_Framework_Mathematics_Matrix_Clone">Clone()</a>
        </td>
        <td class="markdown level1 summary"><p>Create a new object that is a copy of this <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Equals_System_Object_" data-uid="C1.Framework.Mathematics.Matrix.Equals(System.Object)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Equals.html#C1_Framework_Mathematics_Matrix_Equals_System_Object_">Equals(object)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines whether the specified System.Object is equal to the current
System.Object.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_GetHashCode" data-uid="C1.Framework.Mathematics.Matrix.GetHashCode">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.GetHashCode.html#C1_Framework_Mathematics_Matrix_GetHashCode">GetHashCode()</a>
        </td>
        <td class="markdown level1 summary"><p>Serves as a hash function for a particular type. System.Object.GetHashCode
is suitable for use in hashing algorithms and data structures like a hash
table.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_LeftMultiply_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.LeftMultiply(C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.LeftMultiply.html#C1_Framework_Mathematics_Matrix_LeftMultiply_C1_Framework_Mathematics_Matrix_">LeftMultiply(Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Left multiply a speical <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> to this <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_RightMultiply_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.RightMultiply(C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.RightMultiply.html#C1_Framework_Mathematics_Matrix_RightMultiply_C1_Framework_Mathematics_Matrix_">RightMultiply(Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Right multiply a speical <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> to this <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_ToString" data-uid="C1.Framework.Mathematics.Matrix.ToString">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.ToString.html#C1_Framework_Mathematics_Matrix_ToString">ToString()</a>
        </td>
        <td class="markdown level1 summary"><p>Returns a string that represents the current matrix.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Transpose" data-uid="C1.Framework.Mathematics.Matrix.Transpose">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Transpose.html#C1_Framework_Mathematics_Matrix_Transpose">Transpose()</a>
        </td>
        <td class="markdown level1 summary"><p>Convertes this <a class="xref" href="C1.Framework.Mathematics.Matrix.html">Matrix</a> to it's transpose matrix.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_Transpose_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.Transpose(C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.Transpose.html#C1_Framework_Mathematics_Matrix_Transpose_C1_Framework_Mathematics_Matrix_">Transpose(Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the transpose operator for Matrix class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="operators">Operators
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_op_Addition_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.op_Addition(C1.Framework.Mathematics.Matrix,C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.op_Addition.html#C1_Framework_Mathematics_Matrix_op_Addition_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_">operator +(Matrix, Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the + operator for Matrix class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_op_Equality_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.op_Equality(C1.Framework.Mathematics.Matrix,C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.op_Equality.html#C1_Framework_Mathematics_Matrix_op_Equality_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_">operator ==(Matrix, Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the == operator for vector.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_op_Explicit_C1_Framework_Mathematics_Matrix__System_Double" data-uid="C1.Framework.Mathematics.Matrix.op_Explicit(C1.Framework.Mathematics.Matrix)~System.Double">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.op_Explicit.html#C1_Framework_Mathematics_Matrix_op_Explicit_C1_Framework_Mathematics_Matrix__System_Double">explicit operator double(Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Use the explicit convertion to get a value of matrix.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_op_Inequality_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.op_Inequality(C1.Framework.Mathematics.Matrix,C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.op_Inequality.html#C1_Framework_Mathematics_Matrix_op_Inequality_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_">operator !=(Matrix, Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the == operator for vector.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_op_Multiply_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.op_Multiply(C1.Framework.Mathematics.Matrix,C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.op_Multiply.html#C1_Framework_Mathematics_Matrix_op_Multiply_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_">operator *(Matrix, Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the * operator for Matrix class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_op_Subtraction_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.op_Subtraction(C1.Framework.Mathematics.Matrix,C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.op_Subtraction.html#C1_Framework_Mathematics_Matrix_op_Subtraction_C1_Framework_Mathematics_Matrix_C1_Framework_Mathematics_Matrix_">operator -(Matrix, Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the binary - operator for Matrix class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_op_UnaryNegation_C1_Framework_Mathematics_Matrix_" data-uid="C1.Framework.Mathematics.Matrix.op_UnaryNegation(C1.Framework.Mathematics.Matrix)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix.op_UnaryNegation.html#C1_Framework_Mathematics_Matrix_op_UnaryNegation_C1_Framework_Mathematics_Matrix_">operator -(Matrix)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the binary - operator for Matrix class.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
