Real nth root of real numbers




Y = nthroot(X,N) returns the real nth root of the elements of X. Both X and N must be real scalars or arrays of the same size. If an element in X is negative, then the corresponding element in N must be an odd integer.


collapse all

Calculate Real Root of Negative Number

Find the real cube root of -27.

nthroot(-27, 3)
ans =


For comparison, also calculate (-27)^(1/3).

ans =

   1.5000 + 2.5981i

The result is the complex cube root of -27.

Calculate Several Real Roots of Scalar

Create a vector of roots to calculate, N.

N = [5 3 -1];

Use nthroot to calculate several real roots of -8.

Y = nthroot(-8,N)
Y =

   -1.5157   -2.0000   -0.1250

The result is a vector of the same size as N.

Elementwise Roots of Matrix

Create a matrix of bases, X, and a matrix of nth roots, N.

X = [-2 -2 -2; 4 -3 -5]
N = [1 -1 3; 1/2 5 3]
X =

    -2    -2    -2
     4    -3    -5

N =

    1.0000   -1.0000    3.0000
    0.5000    5.0000    3.0000

Each element in X corresponds to an element in N.

Calculate the real nth roots of the elements in X.

Y = nthroot(X,N)
Y =

   -2.0000   -0.5000   -1.2599
   16.0000   -1.2457   -1.7100

Except for the signs (which are treated separately), the result is comparable to abs(X).^(1./N). By contrast, you can calculate the complex roots using X.^(1./N).

Input Arguments

collapse all

X — Input arrayscalar | vector | matrix | multidimensional array

Input array, specified as a scalar, vector, matrix, or multidimensional array. X can be either a scalar or an array of the same size as N. The elements of X must be real.

Data Types: single | double

N — Roots to calculatescalar | array of same size as X

Roots to calculate, specified as a scalar or array of the same size as X. The elements of N must be real. If an element in X is negative, the corresponding element in N must be an odd integer.

Data Types: single | double

More About

expand all


  • While power is a more efficient function for computing the roots of numbers, in cases where both real and complex roots exist, power returns only the complex roots. In these cases, use nthroot to obtain the real roots.

See Also


Introduced before R2006a

Was this topic helpful?