将函数应用于可变长度的子集
apply function to a subset of a variable length
我有一个列表
list = Row[{#}] & /@ Range[100]
并且我想将函数 f 应用于以下元素:
sublist = Row[{5 #}] & /@ Range[20]
当我指定要转换的索引时很容易。例如,
MapAt[f, list, {{1}, {5}}]
工作正常。一旦我创建一个新列表并将其用作 "Part":
h = Row[{5 #}] & /@ Range[20];
MapAt[f, list, h]
它失败了。我想问题的症结在于在两个数组中同时使用# - list 和 h,但我是 Mathematica 的新手,无法弄清楚。有什么方法可以处理任意长度的数组吗?
MapAt
需要一个普通列表,而不是包含在 Row
中的项目。如果您从 h
中省略 Row
它会起作用。请注意,您的函数 f
应用于 Row[{5}]
,而不仅仅是 {5}
。您确定需要使用 Row
吗?
我有一个列表
list = Row[{#}] & /@ Range[100]
并且我想将函数 f 应用于以下元素:
sublist = Row[{5 #}] & /@ Range[20]
当我指定要转换的索引时很容易。例如,
MapAt[f, list, {{1}, {5}}]
工作正常。一旦我创建一个新列表并将其用作 "Part":
h = Row[{5 #}] & /@ Range[20];
MapAt[f, list, h]
它失败了。我想问题的症结在于在两个数组中同时使用# - list 和 h,但我是 Mathematica 的新手,无法弄清楚。有什么方法可以处理任意长度的数组吗?
MapAt
需要一个普通列表,而不是包含在 Row
中的项目。如果您从 h
中省略 Row
它会起作用。请注意,您的函数 f
应用于 Row[{5}]
,而不仅仅是 {5}
。您确定需要使用 Row
吗?