mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 11:49:02 +08:00
rephrase tutorial on Map
This commit is contained in:
parent
3ae4e3880f
commit
5ba19a53a6
@ -278,18 +278,24 @@ Of course, fixed-size matrices can't be resized.
|
|||||||
|
|
||||||
|
|
||||||
\subsection TutorialMap Map
|
\subsection TutorialMap Map
|
||||||
Any memory buffer can be mapped as an Eigen expression:
|
Any memory buffer can be mapped as an Eigen expression using the Map() static method:
|
||||||
<table class="tutorial_code"><tr><td>
|
|
||||||
\code
|
\code
|
||||||
std::vector<float> stlarray(10);
|
std::vector<float> stlarray(10);
|
||||||
Map<VectorXf>(&stlarray[0], stlarray.size()).setOnes();
|
VectorXf::Map(&stlarray[0], stlarray.size()).squaredNorm();
|
||||||
int data[4] = 1, 2, 3, 4;
|
\endcode
|
||||||
Matrix2i mat2x2(data);
|
Here VectorXf::Map returns an object of class Map<VectorXf>, which behaves like a VectorXf except that it uses the existing array. You can write to this object, that will write to the existing array. You can also construct a named obtect to reuse it:
|
||||||
MatrixXi mat2x2 = Map<Matrix2i>(data);
|
\code
|
||||||
MatrixXi mat2x2 = Map<MatrixXi>(data,2,2);
|
float array[rows*cols];
|
||||||
|
Map<MatrixXf> m(array,rows,cols);
|
||||||
|
m = othermatrix1 * othermatrix2;
|
||||||
|
m.eigenvalues();
|
||||||
|
\endcode
|
||||||
|
In the fixed-size case, no need to pass sizes:
|
||||||
|
\code
|
||||||
|
float array[9];
|
||||||
|
Map<Matrix3d> m(array);
|
||||||
|
Matrix3d::Map(array).setIdentity();
|
||||||
\endcode
|
\endcode
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\subsection TutorialCommaInit Comma initializer
|
\subsection TutorialCommaInit Comma initializer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user