# C1.Framework.Mathematics.Matrix-1

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_Framework_Mathematics_Matrix_1" data-uid="C1.Framework.Mathematics.Matrix`1" class="text-break">Matrix&lt;T&gt; 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&lt;T&gt;</span></div>
      <div class="level2"><a class="xref" href="C1.Framework.Drawing.Gdi.TransformMatrix.html">TransformMatrix</a></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_1_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class Matrix&lt;T&gt; : ICloneable</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class Matrix(Of T)
    Implements ICloneable</code></pre>
  </div>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <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_1__ctor" data-uid="C1.Framework.Mathematics.Matrix`1.#ctor">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.-ctor.html#C1_Framework_Mathematics_Matrix_1__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_1__ctor_System_Boolean_C1_Framework_Mathematics_Vector__0____" data-uid="C1.Framework.Mathematics.Matrix`1.#ctor(System.Boolean,C1.Framework.Mathematics.Vector{`0}[])">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.-ctor.html#C1_Framework_Mathematics_Matrix_1__ctor_System_Boolean_C1_Framework_Mathematics_Vector__0____">Matrix(bool, params Vector&lt;T&gt;[])</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_1__ctor_System_Int32_System_Int32_" data-uid="C1.Framework.Mathematics.Matrix`1.#ctor(System.Int32,System.Int32)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.-ctor.html#C1_Framework_Mathematics_Matrix_1__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>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_1__ctor__0_0__0___" data-uid="C1.Framework.Mathematics.Matrix`1.#ctor(`0[0:,0:])">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.-ctor.html#C1_Framework_Mathematics_Matrix_1__ctor__0_0__0___">Matrix(T[,])</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_1__T" data-uid="C1.Framework.Mathematics.Matrix`1._T">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1._T.html">_T</a>
        </td>
        <td class="markdown level1 summary"><p>Saves the type of <b>T</b>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_1__data" data-uid="C1.Framework.Mathematics.Matrix`1._data">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1._data.html">_data</a>
        </td>
        <td class="markdown level1 summary"><p>A two dimension <b>T</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_1_Columns" data-uid="C1.Framework.Mathematics.Matrix`1.Columns">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Columns.html#C1_Framework_Mathematics_Matrix_1_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_1_Elements" data-uid="C1.Framework.Mathematics.Matrix`1.Elements">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Elements.html#C1_Framework_Mathematics_Matrix_1_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_1_Height" data-uid="C1.Framework.Mathematics.Matrix`1.Height">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Height.html#C1_Framework_Mathematics_Matrix_1_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_1_IsIdentity" data-uid="C1.Framework.Mathematics.Matrix`1.IsIdentity">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.IsIdentity.html#C1_Framework_Mathematics_Matrix_1_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_1_Item_System_Int32_System_Int32_" data-uid="C1.Framework.Mathematics.Matrix`1.Item(System.Int32,System.Int32)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Item.html#C1_Framework_Mathematics_Matrix_1_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_1_Rows" data-uid="C1.Framework.Mathematics.Matrix`1.Rows">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Rows.html#C1_Framework_Mathematics_Matrix_1_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_1_Value" data-uid="C1.Framework.Mathematics.Matrix`1.Value">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Value.html#C1_Framework_Mathematics_Matrix_1_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_1_Width" data-uid="C1.Framework.Mathematics.Matrix`1.Width">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Width.html#C1_Framework_Mathematics_Matrix_1_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_1_Add_C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.Add(C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Add.html#C1_Framework_Mathematics_Matrix_1_Add_C1_Framework_Mathematics_Matrix__0__">Add(Matrix&lt;T&gt;)</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_1_Clone" data-uid="C1.Framework.Mathematics.Matrix`1.Clone">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Clone.html#C1_Framework_Mathematics_Matrix_1_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_1_Equals_System_Object_" data-uid="C1.Framework.Mathematics.Matrix`1.Equals(System.Object)">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Equals.html#C1_Framework_Mathematics_Matrix_1_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_1_GetHashCode" data-uid="C1.Framework.Mathematics.Matrix`1.GetHashCode">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.GetHashCode.html#C1_Framework_Mathematics_Matrix_1_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_1_LeftMultiply_C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.LeftMultiply(C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.LeftMultiply.html#C1_Framework_Mathematics_Matrix_1_LeftMultiply_C1_Framework_Mathematics_Matrix__0__">LeftMultiply(Matrix&lt;T&gt;)</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_1_RightMultiply_C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.RightMultiply(C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.RightMultiply.html#C1_Framework_Mathematics_Matrix_1_RightMultiply_C1_Framework_Mathematics_Matrix__0__">RightMultiply(Matrix&lt;T&gt;)</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_1_ToString" data-uid="C1.Framework.Mathematics.Matrix`1.ToString">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.ToString.html#C1_Framework_Mathematics_Matrix_1_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_1_Transpose" data-uid="C1.Framework.Mathematics.Matrix`1.Transpose">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Transpose.html#C1_Framework_Mathematics_Matrix_1_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_1_Transpose_C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.Transpose(C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.Transpose.html#C1_Framework_Mathematics_Matrix_1_Transpose_C1_Framework_Mathematics_Matrix__0__">Transpose(Matrix&lt;T&gt;)</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_1_op_Addition_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.op_Addition(C1.Framework.Mathematics.Matrix{`0},C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.op_Addition.html#C1_Framework_Mathematics_Matrix_1_op_Addition_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__">operator +(Matrix&lt;T&gt;, Matrix&lt;T&gt;)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the + operator for Matrix class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_1_op_Equality_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.op_Equality(C1.Framework.Mathematics.Matrix{`0},C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.op_Equality.html#C1_Framework_Mathematics_Matrix_1_op_Equality_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__">operator ==(Matrix&lt;T&gt;, Matrix&lt;T&gt;)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the == operator for vector.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_1_op_Explicit_C1_Framework_Mathematics_Matrix__0____0" data-uid="C1.Framework.Mathematics.Matrix`1.op_Explicit(C1.Framework.Mathematics.Matrix{`0})~`0">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.op_Explicit.html#C1_Framework_Mathematics_Matrix_1_op_Explicit_C1_Framework_Mathematics_Matrix__0____0">explicit operator T(Matrix&lt;T&gt;)</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_1_op_Inequality_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.op_Inequality(C1.Framework.Mathematics.Matrix{`0},C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.op_Inequality.html#C1_Framework_Mathematics_Matrix_1_op_Inequality_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__">operator !=(Matrix&lt;T&gt;, Matrix&lt;T&gt;)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the == operator for vector.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_1_op_Multiply_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.op_Multiply(C1.Framework.Mathematics.Matrix{`0},C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.op_Multiply.html#C1_Framework_Mathematics_Matrix_1_op_Multiply_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__">operator *(Matrix&lt;T&gt;, Matrix&lt;T&gt;)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the * operator for Matrix class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_Framework_Mathematics_Matrix_1_op_Subtraction_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.op_Subtraction(C1.Framework.Mathematics.Matrix{`0},C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.op_Subtraction.html#C1_Framework_Mathematics_Matrix_1_op_Subtraction_C1_Framework_Mathematics_Matrix__0__C1_Framework_Mathematics_Matrix__0__">operator -(Matrix&lt;T&gt;, Matrix&lt;T&gt;)</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_1_op_UnaryNegation_C1_Framework_Mathematics_Matrix__0__" data-uid="C1.Framework.Mathematics.Matrix`1.op_UnaryNegation(C1.Framework.Mathematics.Matrix{`0})">
          <a class="xref" href="C1.Framework.Mathematics.Matrix-1.op_UnaryNegation.html#C1_Framework_Mathematics_Matrix_1_op_UnaryNegation_C1_Framework_Mathematics_Matrix__0__">operator -(Matrix&lt;T&gt;)</a>
        </td>
        <td class="markdown level1 summary"><p>Defines the binary - operator for Matrix class.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
