 <p>There is no predefined function of that kind in Armadillo.</p> <p>Here is a quick self-made version, that however will not benefit from any delayed expression evaluation template features of Armadillo:</p> <pre class="lang-cpp prettyprint-override"><code>#include &lt;cassert&gt; #include &lt;cmath&gt; #include &lt;armadillo&gt; #include &lt;iostream&gt; template&lt;class Object&gt; Object elementwise_pow(const Object&amp; base, const Object&amp; p) { assert(base.n_elem == p.n_elem); Object result; result.copy_size(base); for (std::size_t i = 0; i &lt; result.n_elem; ++i) { result[i] = std::pow(base[i], p[i]); } return result; } int main() { arma::mat m(3,3); m.fill(2.); arma::mat p(3,3); p &lt;&lt; 1 &lt;&lt; 2 &lt;&lt; 3 &lt;&lt; arma::endr &lt;&lt; 4 &lt;&lt; 5 &lt;&lt; 6 &lt;&lt; arma::endr &lt;&lt; 7 &lt;&lt; 8 &lt;&lt; 9 &lt;&lt; arma::endr; arma::mat r = elementwise_pow(m, p); r.print(std::cout); return 0; } </code></pre> <p>An optimizing compiler should also easily <strong>vectorize</strong> this code.</p>