I have the following defintion
arr = SymmetrizedArray[{1, 2} -> 1, {4, 4}, Antisymmetric[{1, 2}]]
which gives a StructuredArray
with one entry {1,2}->1
. I would like to map this array to a new one on a (key,value) basis, i.e. the desired result would look like something like this:
desiredResult = SymmetrizedArray[f[{1, 2}] -> g[1], {4, 4}, Antisymmetric[{1, 2}]]
How do I go about this without converting to a normal matrix?
I found out that for SparseArray
one can do
SparseArray[{{1, 2} -> 1, {2, 1} -> -1}, {4, 4}]["NonzeroPositions"]
to get all available keys, but I actually would like to not convert my StructuredArray
to a SparseArray
to keep the number of entries at a minimum. Unfortunately an analogous syntax doesn't work with SparseArray
.
Thanks a lot!