Использование All in MapAt в Mathematica

У меня часто есть список пар, например

data = {{0,0.0},{1,12.4},{2,14.6},{3,25.1}}

, и я хочу что-то сделать, например Rescale , для всех вторых элементов, не касаясь первых элементов. Самый простой способ, который я знаю:

Transpose[MapAt[Rescale, Transpose[data], 2]]

Должен быть способ сделать это без стольких транспонирования ing. Я хочу, чтобы что-то вроде этого работало:

MapAt[Rescale, data, {All, 2}]

Но насколько я понимаю, MapAt принимает спецификации стиля Position вместо спецификаций стиля Part . Какое решение является правильным?

Чтобы уточнить,

я ищу решение, в котором мне не нужно повторяться, поэтому не хватает двойного транспонирования или двойного [[All, 2] ]] , поскольку я считаю повторение сигналом, я делаю что-то не самым простым способом. Однако, если для устранения повторения требуется введение промежуточных переменных или именованной функции или другой дополнительной сложности, возможно, решение транспонировать / непереносить уже правильно.

10
задан ArgentoSapiens 20 December 2011 в 19:27
поделиться