Difference between revisions of "Tensor"

From QETLAB
Jump to navigation Jump to search
m
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
|desc=[[Kronecker product|Kronecker tensor product]] of two or more matrices
 
|desc=[[Kronecker product|Kronecker tensor product]] of two or more matrices
 
|rel=[[TensorSum]]
 
|rel=[[TensorSum]]
|upd=November 27, 2012
+
|cat=[[List of functions#Basic_operations|Basic operation]]
|v=1.00}}
+
|upd=November 28, 2012
 +
|v=0.50}}
 
<tt>'''Tensor'''</tt> is a [[List of functions|function]] that produces the [[Kronecker product|Kronecker (tensor) product]] of two or more matrices, and thus extends MATLAB's built-in [http://www.mathworks.com/help/matlab/ref/kron.html kron] function.
 
<tt>'''Tensor'''</tt> is a [[List of functions|function]] that produces the [[Kronecker product|Kronecker (tensor) product]] of two or more matrices, and thus extends MATLAB's built-in [http://www.mathworks.com/help/matlab/ref/kron.html kron] function.
  
Line 13: Line 14:
  
 
==Argument descriptions==
 
==Argument descriptions==
* <tt>A</tt>: If <tt>A</tt> is a cell, the <tt>KRN</tt> is the Kronecker product of all matrices within <tt>A</tt>.
+
* <tt>A</tt>: If <tt>A</tt> is a cell, then <tt>KRN</tt> is the Kronecker product of all matrices within <tt>A</tt>.
 
* <tt>M</tt> (optional): A scalar indicating how many times <tt>A</tt> should be tensored with itself (if <tt>M</tt> is provided, <tt>A</tt> must be a matrix).
 
* <tt>M</tt> (optional): A scalar indicating how many times <tt>A</tt> should be tensored with itself (if <tt>M</tt> is provided, <tt>A</tt> must be a matrix).
 
* <tt>B,C,...</tt> (optional): Matrices. If these are provided, then <tt>A</tt> must be a matrix, and the output is $A \otimes B \otimes C \otimes \cdots$.
 
* <tt>B,C,...</tt> (optional): Matrices. If these are provided, then <tt>A</tt> must be a matrix, and the output is $A \otimes B \otimes C \otimes \cdots$.
Line 23: Line 24:
 
===Multiple copies of Werner states===
 
===Multiple copies of Werner states===
 
When investigating the [[NPPT bound entanglement]] conjecture, you may want to tensor [[Werner states]] with themselves multiple times. The following code tensors a particular Werner state with itself 6 times:
 
When investigating the [[NPPT bound entanglement]] conjecture, you may want to tensor [[Werner states]] with themselves multiple times. The following code tensors a particular Werner state with itself 6 times:
<pre<noinclude></noinclude>>
+
<syntaxhighlight>
>> rho = [[WernerState|WernerState(3,1/2,1)]];
+
>> rho = WernerState(3,1/2,1);
 
>> rho6 = Tensor(rho,6);
 
>> rho6 = Tensor(rho,6);
</pre<noinclude></noinclude>>
+
</syntaxhighlight>
  
 
Note that <tt>rho6</tt> is a 531441-by-531441 matrix, so we don't display it here.
 
Note that <tt>rho6</tt> is a 531441-by-531441 matrix, so we don't display it here.
 +
 +
{{SourceCode|name=Tensor}}

Revision as of 15:00, 22 September 2014

Tensor
Kronecker tensor product of two or more matrices

Other toolboxes required none
Related functions TensorSum
Function category Basic operation

Tensor is a function that produces the Kronecker (tensor) product of two or more matrices, and thus extends MATLAB's built-in kron function.

Syntax

  • KRN = Tensor(A)
  • KRN = Tensor(A,M)
  • KRN = Tensor(A,B,C,...)

Argument descriptions

  • A: If A is a cell, then KRN is the Kronecker product of all matrices within A.
  • M (optional): A scalar indicating how many times A should be tensored with itself (if M is provided, A must be a matrix).
  • B,C,... (optional): Matrices. If these are provided, then A must be a matrix, and the output is $A \otimes B \otimes C \otimes \cdots$.

Examples

Several different input formats

The Tensor function accepts input in many different formats, so that you may use whichever is most convenient at a particular time. For example, the following three code snippets all result in the same operator: Tensor(A,3), Tensor(A,A,A), and Tensor({A,A,A}).

Multiple copies of Werner states

When investigating the NPPT bound entanglement conjecture, you may want to tensor Werner states with themselves multiple times. The following code tensors a particular Werner state with itself 6 times:

>> rho = WernerState(3,1/2,1);
>> rho6 = Tensor(rho,6);

Note that rho6 is a 531441-by-531441 matrix, so we don't display it here.

Source code

Click here to view this function's source code on github.