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));
0
Thanks a lot! This will help me greatly.
Sergio
Your Answer
2 Answers
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));
Thanks a lot! This will help me greatly.
Sergio