DOTPOWER Element-wise Power Operator

Section: Mathematical Operators


Raises one numerical array to another array (elementwise). There are three operators all with the same general syntax:
  y = a .^ b

The result y depends on which of the following three situations applies to the arguments a and b:

  1. a is a scalar, b is an arbitrary n-dimensional numerical array, in which case the output is a raised to the power of each element of b, and the output is the same size as b.
  2. a is an n-dimensional numerical array, and b is a scalar, then the output is the same size as a, and is defined by each element of a raised to the power b.
  3. a and b are both n-dimensional numerical arrays of \emph{the same size}. In this case, each element of the output is the corresponding element of a raised to the power defined by the corresponding element of b.
The rules for manipulating types has changed in FreeMat 4.0. See typerules for more details.

Function Internals

There are three formulae for this operator. For the first form

and the second form

and in the third form


We demonstrate the three forms of the dot-power operator using some simple examples. First, the case of a scalar raised to a series of values.
--> a = 2

a = 

--> b = 1:4

b = 
 1 2 3 4 

--> c = a.^b

c = 
  2  4  8 16 

The second case shows a vector raised to a scalar.

--> c = b.^a

c = 
  1  4  9 16 

The third case shows the most general use of the dot-power operator.

--> A = [1,2;3,2]

A = 
 1 2 
 3 2 

--> B = [2,1.5;0.5,0.6]

B = 
    2.0000    1.5000 
    0.5000    0.6000 

--> C = A.^B

C = 
    1.0000    2.8284 
    1.7321    1.5157