Element by element array power

User ForumElement by element array power
sergiocampod asked 2 years ago

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.



2 Answers
aptech Staff answered 2 years ago

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);

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

A_new = areshape(vecr(A)^x, getorders(A));
sergiocampod answered 2 years ago

Thanks a lot! This will help me greatly.