Error compiling mex file ubuntu with armadillo library
1 view (last 30 days)
Show older comments
Hi!
I am trying to compile a mex file on ubuntu starting from a cpp file using the armadillo library. However, I get this strange error when joining 3 vectors and when determining if a vertor is full of zeros.
Error using mex
/home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/arma_test2.cpp: In function ‘void mexFunction(int, mxArray**, int,
const mxArray**)’:
/home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/arma_test2.cpp:107:41: error: no matching function for call to
‘join_horiz(arma::rowvec&, arma::rowvec&, arma::rowvec&)’
rowvec out=join_horiz(vec1,vec2,vec3);
^
In file included from /usr/include/armadillo:493:0,
from /home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/armaMex.hpp:21,
from /home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/arma_test2.cpp:2:
/usr/include/armadillo_bits/fn_join.hpp:85:1: note: candidate: template<class T1, class T2> typename
arma::enable_if2<((arma::is_arma_type<T1>::value && arma::is_arma_type<T2>::value) && arma::is_same_type<typename
T1::elem_type, typename T2::elem_type>::value), const arma::Glue<T1, T2, arma::glue_join_rows> >::result
arma::join_horiz(const T1&, const T2&)
join_horiz(const T1& A, const T2& B)
^~~~~~~~~~
/usr/include/armadillo_bits/fn_join.hpp:85:1: note: template argument deduction/substitution failed:
/home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/arma_test2.cpp:107:41: note: candidate expects 2 arguments, 3
provided
rowvec out=join_horiz(vec1,vec2,vec3);
^
In file included from /usr/include/armadillo:493:0,
from /home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/armaMex.hpp:21,
from /home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/arma_test2.cpp:2:
/usr/include/armadillo_bits/fn_join.hpp:219:1: note: candidate: template<class T1, class T2> const arma::SpGlue<T1,
T2, arma::spglue_join_rows> arma::join_horiz(const arma::SpBase<typename T1::elem_type, T1>&, const
arma::SpBase<typename T1::elem_type, T2>&)
join_horiz(const SpBase<typename T1::elem_type,T1>& A, const SpBase<typename T1::elem_type,T2>& B)
^~~~~~~~~~
/usr/include/armadillo_bits/fn_join.hpp:219:1: note: template argument deduction/substitution failed:
/home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/arma_test2.cpp:107:41: note: ‘arma::rowvec {aka
arma::Row<double>}’ is not derived from ‘const arma::SpBase<typename T1::elem_type, T1>’
rowvec out=join_horiz(vec1,vec2,vec3);
^
/home/b8054452/Downloads/Copy_of_MEX_EXAMPLE_2/arma_test2.cpp:110:13: error: ‘arma::rowvec {aka class
arma::Row<double>}’ has no member named ‘is_zero’; did you mean ‘is_row’?
if(vec1.is_zero()==true)
^~~~~~~
The strange thing is that when compiling it with windows everything works as supposed.
Any idea how to fix it?
THANKS!
0 Comments
Answers (0)
See Also
Categories
Find more on Write C Functions Callable from MATLAB (MEX Files) in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!