File: Creating-Permutation-Matrices.html

package info (click to toggle)
octave 3.8.2-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 84,396 kB
  • ctags: 45,547
  • sloc: cpp: 293,356; ansic: 42,041; fortran: 23,669; sh: 13,629; objc: 7,890; yacc: 7,093; lex: 3,442; java: 2,125; makefile: 1,589; perl: 1,009; awk: 974; xml: 34
file content (142 lines) | stat: -rw-r--r-- 5,401 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Octave: Creating Permutation Matrices</title>

<meta name="description" content="GNU Octave: Creating Permutation Matrices">
<meta name="keywords" content="GNU Octave: Creating Permutation Matrices">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Basic-Usage.html#Basic-Usage" rel="up" title="Basic Usage">
<link href="Explicit-and-Implicit-Conversions.html#Explicit-and-Implicit-Conversions" rel="next" title="Explicit and Implicit Conversions">
<link href="Creating-Diagonal-Matrices.html#Creating-Diagonal-Matrices" rel="prev" title="Creating Diagonal Matrices">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Creating-Permutation-Matrices"></a>
<div class="header">
<p>
Next: <a href="Explicit-and-Implicit-Conversions.html#Explicit-and-Implicit-Conversions" accesskey="n" rel="next">Explicit and Implicit Conversions</a>, Previous: <a href="Creating-Diagonal-Matrices.html#Creating-Diagonal-Matrices" accesskey="p" rel="prev">Creating Diagonal Matrices</a>, Up: <a href="Basic-Usage.html#Basic-Usage" accesskey="u" rel="up">Basic Usage</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Creating-Permutation-Matrices-1"></a>
<h4 class="subsection">21.1.2 Creating Permutation Matrices</h4>

<p>For creating permutation matrices, Octave does not introduce a new function, but
rather overrides an existing syntax: permutation matrices can be conveniently
created by indexing an identity matrix by permutation vectors.
That is, if <var>q</var> is a permutation vector of length <var>n</var>, the expression
</p>
<div class="example">
<pre class="example">  P = eye (n) (:, q);
</pre></div>

<p>will create a permutation matrix - a special matrix object.
</p>
<div class="example">
<pre class="example">eye (n) (q, :) 
</pre></div>

<p>will also work (and create a row permutation matrix), as well as 
</p>
<div class="example">
<pre class="example">eye (n) (q1, q2).
</pre></div>

<p>For example:
</p>
<div class="example">
<pre class="example">  eye (4) ([1,3,2,4],:)
&rArr;
Permutation Matrix

   1   0   0   0
   0   0   1   0
   0   1   0   0
   0   0   0   1

  eye (4) (:,[1,3,2,4])
&rArr;
Permutation Matrix

   1   0   0   0
   0   0   1   0
   0   1   0   0
   0   0   0   1
</pre></div>

<p>Mathematically, an identity matrix is both diagonal and permutation matrix.
In Octave, <code>eye (n)</code> returns a diagonal matrix, because a matrix
can only have one class.  You can convert this diagonal matrix to a permutation
matrix by indexing it by an identity permutation, as shown below.
This is a special property of the identity matrix; indexing other diagonal
matrices generally produces a full matrix.
</p>
<div class="example">
<pre class="example">  eye (3)
&rArr;
Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1

  eye(3)(1:3,:)
&rArr;
Permutation Matrix

   1   0   0
   0   1   0
   0   0   1
</pre></div>

<p>Some other built-in functions can also return permutation matrices.  Examples
include
<em>inv</em> or <em>lu</em>.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Explicit-and-Implicit-Conversions.html#Explicit-and-Implicit-Conversions" accesskey="n" rel="next">Explicit and Implicit Conversions</a>, Previous: <a href="Creating-Diagonal-Matrices.html#Creating-Diagonal-Matrices" accesskey="p" rel="prev">Creating Diagonal Matrices</a>, Up: <a href="Basic-Usage.html#Basic-Usage" accesskey="u" rel="up">Basic Usage</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>