From 7babd216de4ab987af84d80e2f553db6f70f3eb9 Mon Sep 17 00:00:00 2001 From: kradchen Date: Wed, 17 May 2023 10:39:19 +0800 Subject: [PATCH] Add block function to Matrix. --- src/Matrix.cpp | 61 ++++++++++++++++++++++++++++++++++++++++++++ src/Matrix.h | 10 +++++++- test/Matrix_Test.cpp | 16 ++++++++++++ 3 files changed, 86 insertions(+), 1 deletion(-) diff --git a/src/Matrix.cpp b/src/Matrix.cpp index d06bf4e..932ebd8 100644 --- a/src/Matrix.cpp +++ b/src/Matrix.cpp @@ -1,5 +1,6 @@ #include "Matrix.h" +#include #include #include #include @@ -11,6 +12,8 @@ #include #include +#include "Eigen/src/Core/Map.h" +#include "Eigen/src/Core/Matrix.h" #include "Function.h" namespace Aurora{ @@ -473,6 +476,64 @@ namespace Aurora { double& Matrix::operator[](size_t index) { return getData()[index];} double Matrix::operator[](size_t index) const { return getData()[index];} + Matrix Matrix::block(int aDim,int aBeginIndex, int aEndIndex){ + if(aDim>2 ){ + std::cerr<<"block only support 1D-3D data!"<=getDimSize(aDim) || aBeginIndex<0){ + std::cerr<<"block BeginIndx error!BeginIndx:"<=getDimSize(aDim) || aEndIndex<0){ + std::cerr<<"block EndIndex error!EndIndex:"<