diff options
author | Willem Jan Palenstijn <wjp@usecode.org> | 2016-07-29 15:31:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-29 15:31:05 +0200 |
commit | 7bb42ddd9e26fc7c01734d26bc114b5a935d9110 (patch) | |
tree | 2318c1454f248991ea6d19b335b422bb20d17603 /matlab/mex | |
parent | 63bb375eda41e5b5b3b88a0a308fea4c44e25fcf (diff) | |
parent | 584fb584816aefca42518c9a6075ac2df814dac6 (diff) | |
download | astra-7bb42ddd9e26fc7c01734d26bc114b5a935d9110.tar.gz astra-7bb42ddd9e26fc7c01734d26bc114b5a935d9110.tar.bz2 astra-7bb42ddd9e26fc7c01734d26bc114b5a935d9110.tar.xz astra-7bb42ddd9e26fc7c01734d26bc114b5a935d9110.zip |
Merge pull request #62 from wjp/stringutil
Minor string parsing changes
Diffstat (limited to 'matlab/mex')
-rw-r--r-- | matlab/mex/mexHelpFunctions.cpp | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/matlab/mex/mexHelpFunctions.cpp b/matlab/mex/mexHelpFunctions.cpp index 13c4ade..d957aea 100644 --- a/matlab/mex/mexHelpFunctions.cpp +++ b/matlab/mex/mexHelpFunctions.cpp @@ -33,11 +33,6 @@ $Id$ #include "mexHelpFunctions.h" #include "astra/Utilities.h" -#include <algorithm> -#include <boost/algorithm/string.hpp> -#include <boost/algorithm/string/split.hpp> -#include <boost/algorithm/string/classification.hpp> - using namespace std; using namespace astra; @@ -362,8 +357,8 @@ mxArray* stringToMxArray(std::string input) // split rows std::vector<std::string> row_strings; std::vector<std::string> col_strings; - boost::split(row_strings, input, boost::is_any_of(";")); - boost::split(col_strings, row_strings[0], boost::is_any_of(",")); + StringUtil::splitString(row_strings, input, ";"); + StringUtil::splitString(col_strings, row_strings[0], ","); // get dimensions int rows = row_strings.size(); @@ -375,7 +370,7 @@ mxArray* stringToMxArray(std::string input) // loop elements for (unsigned int row = 0; row < rows; row++) { - boost::split(col_strings, row_strings[row], boost::is_any_of(",")); + StringUtil::splitString(col_strings, row_strings[row], ","); // check size for (unsigned int col = 0; col < col_strings.size(); col++) { out[col*rows + row] = StringUtil::stringToFloat(col_strings[col]); @@ -389,7 +384,7 @@ mxArray* stringToMxArray(std::string input) // split std::vector<std::string> items; - boost::split(items, input, boost::is_any_of(",")); + StringUtil::splitString(items, input, ","); // init matrix mxArray* pVector = mxCreateDoubleMatrix(1, items.size(), mxREAL); @@ -402,16 +397,13 @@ mxArray* stringToMxArray(std::string input) return pVector; } - // number - char* end; - double content = ::strtod(input.c_str(), &end); - bool isnumber = !*end; - if (isnumber) { - return mxCreateDoubleScalar(content); + try { + // number + return mxCreateDoubleScalar(StringUtil::stringToDouble(input)); + } catch (const StringUtil::bad_cast &) { + // string + return mxCreateString(input.c_str()); } - - // string - return mxCreateString(input.c_str()); } //----------------------------------------------------------------------------------------- // turn a c++ map into a matlab struct |