применить функцию к подмножеству переменной длины - PullRequest
1 голос
/ 03 февраля 2020

У меня есть список

list = Row[{#}] & /@ Range[100]

, и я хочу применить функцию f к следующим элементам:

sublist = Row[{5 #}] & /@ Range[20]

Легко, когда я указываю индексы, которые я хочу преобразовать. Например,

MapAt[f, list, {{1}, {5}}] 

работает нормально. Как только я создаю новый список и использую его как «Часть»:

h = Row[{5 #}] & /@ Range[20]; 
MapAt[f, list, h]

, он терпит неудачу. Я предполагаю, что суть проблемы заключается в одновременном использовании # в двух массивах - list и h, но я новичок в Mathematica и не могу понять это. Есть ли способ работать с массивами произвольной длины?

1 Ответ

1 голос
/ 05 февраля 2020

MapAt нужен простой список, а не элементы, завернутые в Row. Если вы пропустите Row из h, это сработает. Обратите внимание, что ваша функция f применяется к Row[{5}], а не только к {5}. Вы уверены, что вам нужно использовать Row вообще?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...