Element by element array power

Is it possible to apply element by element power to an array?

For a matrix (A=1|2|3;)  one can use B=A.^2 to get B=1|4|9. Is the same operation possible for an array, say C[1,.,.]=A  and C[1,.,.]=A+1, and get D=C.^2?

 

Thanks for any help you can give me.

 

Sergio

2 Answers



0



Unfortunately, as of now, there is no operator in GAUSS to do this. You could accomplish it like this, however:

proc (1) = arrayPow(A, x);
   local dims, A_mat;
   dims = getorders(A);
	
   //Turn A into a vector
   A_mat = vecr(A);
	
   //Perform power operation
   //and reshape 'A'
   A = areshape(A_mat^x, dims);
   retp(A);
endp;

or if you want something more compact, you could condense the above into this:

A_new = areshape(vecr(A)^x, getorders(A));

aptech

1,773


0



Thanks a lot! This will help me greatly.

 

Sergio

Your Answer

2 Answers

0

Unfortunately, as of now, there is no operator in GAUSS to do this. You could accomplish it like this, however:

proc (1) = arrayPow(A, x);
   local dims, A_mat;
   dims = getorders(A);
	
   //Turn A into a vector
   A_mat = vecr(A);
	
   //Perform power operation
   //and reshape 'A'
   A = areshape(A_mat^x, dims);
   retp(A);
endp;

or if you want something more compact, you could condense the above into this:

A_new = areshape(vecr(A)^x, getorders(A));
0

Thanks a lot! This will help me greatly.

 

Sergio


You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.