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
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: MATRIX Matrix Definitions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FreeMat
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('variables_matrix.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">MATRIX Matrix Definitions </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_variables.html">Variables and Arrays</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>The matrix is the basic datatype of FreeMat. Matrices can be defined using the following syntax </p>
<pre class="fragment"> A = [row_def1;row_def2;...,row_defN]
</pre><p> where each row consists of one or more elements, seperated by commas </p>
<pre class="fragment"> row_defi = element_i1,element_i2,...,element_iM
</pre><p> Each element can either be a scalar value or another matrix, provided that the resulting matrix definition makes sense. In general this means that all of the elements belonging to a row have the same number of rows themselves, and that all of the row definitions have the same number of columns. Matrices are actually special cases of N-dimensional arrays where <code>N<=2</code>. Higher dimensional arrays cannot be constructed using the bracket notation described above. The type of a matrix defined in this way (using the bracket notation) is determined by examining the types of the elements. The resulting type is chosen so no information is lost on any of the elements (or equivalently, by choosing the highest order type from those present in the elements). </p>
<h1><a class="anchor" id="Examples"></a>
Examples</h1>
<p>Here is an example of a matrix of <code>int32</code> elements (note that untyped integer constants default to type <code>int32</code>).</p>
<pre class="fragment">--> A = [1,2;5,8]
A =
1 2
5 8
</pre><p>Now we define a new matrix by adding a column to the right of <code>A</code>, and using float constants.</p>
<pre class="fragment">--> B = [A,[3.2f;5.1f]]
B =
1.0000 2.0000 3.2000
5.0000 8.0000 5.1000
</pre><p>Next, we add extend <code>B</code> by adding a row at the bottom. Note how the use of an untyped floating point constant forces the result to be of type <code>double</code></p>
<pre class="fragment">--> C = [B;5.2,1.0,0.0]
C =
1.0000 2.0000 3.2000
5.0000 8.0000 5.1000
5.2000 1.0000 0
</pre><p>If we instead add a row of <code>complex</code> values (recall that <code>i</code> is a <code>complex</code> constant, not a <code>dcomplex</code> constant)</p>
<pre class="fragment">--> D = [B;2.0f+3.0f*i,i,0.0f]
D =
1.0000 + 0.0000i 2.0000 + 0.0000i 3.2000 + 0.0000i
5.0000 + 0.0000i 8.0000 + 0.0000i 5.1000 + 0.0000i
2.0000 + 3.0000i 0.0000 + 1.0000i 0
</pre><p>Likewise, but using <code>dcomplex</code> constants</p>
<pre class="fragment">--> E = [B;2.0+3.0*i,i,0.0]
E =
1.0000 + 0.0000i 2.0000 + 0.0000i 3.2000 + 0.0000i
5.0000 + 0.0000i 8.0000 + 0.0000i 5.1000 + 0.0000i
2.0000 + 3.0000i 0.0000 + 1.0000i 0
</pre><p>Finally, in FreeMat, you can construct matrices with strings as contents, but you have to make sure that if the matrix has more than one row, that all the strings have the same length.</p>
<pre class="fragment">--> F = ['hello';'there']
F =
hello
there
</pre> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_variables.html">Variables and Arrays</a></li>
<li class="footer">Generated on Thu Jul 25 2013 17:18:30 for FreeMat by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
</ul>
</div>
</body>
</html>
|